我正在尝试在本地IIS系统上托管默认的React Application。
配置如下
我已经安装了先决条件,即asp.net core 2.1托管捆绑包和运行时。
当我发布应用程序时,其目录如下
我进行的托管配置:
但是当我在浏览器上运行该应用程序时,它显示404错误,没有找到该应用程序。
但是,通过ASP.NET CORE 2.0,它可以使用相同的配置。
此ASP.NET CORE 2.1删除了对此类应用程序的支持吗?
我参加过所有可能的论坛,但没有一个论坛提到如何使用React-Redux模板托管2.1应用程序。
请帮助
答案 0 :(得分:1)
我认为我找到了问题。 这是HTTP启用配置附带的ASP.NET CORE 2.1默认项目。
当我将其托管在IIS服务器上时,它会将其重定向到https url,但未为IIS协议配置IIS。
出于我的需要,我从StartUp.cs文件的Configure
方法中删除了HTTPS重定向
已删除 app.UseHttpsRedirection()
它现在正在重定向到HTTP
答案 1 :(得分:1)
我遇到了类似的问题,这与同时发布两个项目有关。这对我有用:
npm run build
PS
确保将项目标记为IIS中的应用程序
如果需要,为该项目启用目录浏览
如果不在homepage
中,请设置package.json
,如果它不在IIS服务器的根目录中
答案 2 :(得分:0)
这对我有用。
build文件夹中的web.config看起来像这样
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="React Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/dynamotoolsapi" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
/ dynamotoolsapi恰好是我整个.net解决方案的目录,因此请相应地进行更改。
否,您不需要或不想删除构建文件夹,而必须在服务器上执行该操作。