【发布时间】:2020-12-19 13:14:15
【问题描述】:
我正在通过在 Windows 10 上运行的 IIS 部署 .Net 应用程序。Web.config 已正确处理,IIS 未报告任何问题。但是 aspnetcore 模块未启动,我无法浏览该站点。 如果我从命令行运行 dotnet dllname,那么我的网站可以正常工作。这是一个令人沮丧的尝试。 IIS 日志没有提供任何线索来说明 IIS 为何无法像 dotnet 从命令行那样启动站点。尝试启用 aspnetcore 增强跟踪不会做任何事情。这是我的 web.config:
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="c:\Program Files\dotnet\dotnet.exe" arguments="c:\escompdata2\ESTemplateCompData.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" >
<handlerSettings>
<handlerSetting name="debugFile" value=".\logs\aspnetcore-debug.log" />
<handlerSetting name="debugLevel" value="FILE,TRACE" />
</handlerSettings>
</aspNetCore>
</system.webServer>
</location>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://escompdata:5000/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我的应用程序池确实具有适当的权限。我正在使用具有正确凭据的管理员 ID。这是应用程序池基本设置的屏幕截图
这是高级设置的截图 我正在为我的站点设置反向代理,当从命令行启动 dotnet 应用程序时,IIS 运行良好,这似乎表明该站点至少在 IIS 中设置正确。
问题在于 IIS 似乎无法通过 dotnet 或应用程序可执行文件启动应用程序。我没有尝试过使用 Kestrel 服务器的 out 或 process 模式,但这是一个令人费解的部分。 IIS 似乎无法通过日志提供任何线索。任何帮助将不胜感激。
【问题讨论】:
-
如何确认aspnetcore模块无法启动?浏览器或iis中是否有错误信息?
-
我更新了 web.config,我通过 IIS 设置代理信息重新启动服务器并浏览到该站点我收到错误 502.3 Bad Gateway
-
我已经确定 IIS 没有使用 dotnet 启动模块。首先,当我列出机器上运行的所有进程时,不包括 dotnet,因为当我使用项目 dll 从命令行运行 dotnet 时。其次,应用程序应该监听 localhost:5000。当我浏览到该链接时,它会失败,这表明没有人在那儿听。这应该是一个简单的问题。不幸的是,我不知道根本原因是什么。
-
首先你要确认是什么原因导致这个错误,你可以试试我下面提到的方法。
标签: .net windows iis web-config asp.net-core-3.1