.Net核心模块不是从IIS启动的,只能从命令行启动
我正在通过运行在Windows 10上的IIS部署.Net应用程序。Web.config处理正确,IIS不会报告任何问题。但是,aspnetcore模块尚未启动,我无法浏览该站点。 如果我从命令行运行dotnet dllname,那么我的站点工作正常。这是一项令人沮丧的努力。IIS日志没有提供任何线索,说明为什么IIS无法像dotnet那样从命令行启动站点。尝试启用aspnetcore增强跟踪没有任何作用。这是我的web.config:.Net核心模块不是从IIS启动的,只能从命令行启动,.net,windows,iis,web-config,asp.net-core-3.1,.net,Windows,Iis,Web Config,Asp.net Core 3.1,我正在通过运行在Windows 10上的IIS部署.Net应用程序。Web.config处理正确,IIS不会报告任何问题。但是,aspnetcore模块尚未启动,我无法浏览该站点。 如果我从命令行运行dotnet dllname,那么我的站点工作正常。这是一项令人沮丧的努力。IIS日志没有提供任何线索,说明为什么IIS无法像dotnet那样从命令行启动站点。尝试启用aspnetcore增强跟踪没有任何作用。这是我的web.config: <configuration> <lo
<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>
以下是高级设置的屏幕截图
我正在为我的站点设置反向代理,当从命令行启动dotnet应用程序时,IIS运行良好,这似乎表明该站点至少在IIS中设置正确
问题是IIS似乎无法通过dotnet或应用程序可执行文件启动应用程序。我还没有尝试过Kestrel服务器的out或process模式,但这是一个令人费解的部分。IIS似乎无法通过日志提供任何线索。非常感谢您提供的任何帮助。IIS需要安装适当的托管捆绑包才能托管您的.Net核心应用程序。例如,如果您有一个.Net Core 3.1应用程序,则需要安装.Net Core 3.1托管捆绑包。IIS不支持执行现成的.Net核心应用程序。这个参考资料应该可以让你开始
导致502.3坏网关错误的原因有很多。您需要做的第一件事是确定错误的原因
此链接提供了排除502.3错误的步骤:。我打电话给Microsoft,他们告诉我发生了什么。我告诉IIS代理到localhost:5000,这是应用程序在命令行使用dotnet命令启动时侦听的内容。但是,当IIS启动应用程序时,它不会使用该端口。关键是告诉IIS将应用程序绑定到端口80,而不是我告诉它的5000,并在URL重写部分将操作设置为“无”。这使我可以浏览应用程序。运行报告以显示更多信息,您如何确认无法启动aspnetcore模块?浏览器或iis中是否有任何错误消息?我更新了web.config,通过iis设置代理信息重新启动服务器并浏览到站点我收到错误502.3错误网关我已明确验证iis没有使用dotnet启动模块。首先,当我列出计算机上运行的所有进程时,dotnet不包括在内,就像我使用项目dll从命令行运行dotnet时一样。其次,应用程序应该正在侦听localhost:5000。当我浏览到那个链接时,它失败了,这验证了没有人在听。这应该是一个简单的问题。不幸的是,我无法找出根本原因。你要做的第一件事就是确认是什么导致了这个错误,你可以尝试我下面提到的方法。谢谢@FrankJames。我确实立即安装了主机包。这应该是一个不需要动脑筋的问题,你告诉IIS可执行文件,它就会产生它。我在托管NodeJS应用程序和使用iisnode模块时也遇到同样的问题。我正在做一些事情,阻止IIS启动适当的模块,但无法确定它是什么。与dotnet一样,我可以从命令行启动节点,IIS代理将请求转发到服务器,而不会出现任何问题。