[英].net core application error 502.5 if run as virtual directory in IIS
我在配置.net核心应用程序以在iis中作为虚拟目录工作时遇到问题。 如果我直接使用其端口启动.net核心应用程序,它可以正常工作。
我得到502.5响应,并在事件查看器中有此消息
Application 'MACHINE/WEBROOT/APPHOST/DEFAULT WEB SITE' with physical root 'C:\inetpub\wwwroot\' failed to start process with commandline ' ', ErrorCode = '0x80070057 : 0.
我已经删除了.net web.config中的父处理程序
<handlers>
<remove name="httpPlatformHandler"/>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
</handlers>
要运行ASP.NET Core应用程序,请确保:
web.config
托管软件包包括IIS的ASP.NET核心模块,允许IIS启动。 没有ASP.NET核心应用程序将无法在IIS上运行。
您还需要发布应用程序,该文件夹生成一个包含二进制文件和配置文件的最终输出文件夹,包括根目录中的web.config
和包含内容的wwwroot
根文件夹。 要测试你应该确保你可以从命令行运行你的应用程序:
dotnet yourMainAssembly.dll -c Release
如果这不起作用,请首先修复此问题,因为这基本上是IIS触发的内容。 一旦独立工作,您可以尝试使用IIS。
在Visual Studio中创建的ASP.NET Core项目自动包含web.config,并且应该包含在IIS下运行所需的所有内容。 对于基本设置,应该是您所需要的。 生成的web.config应该负责让您的应用运行。
如果您正在使用虚拟,则可能会遇到父端配置出现问题的问题,因为虚拟从父级继承设置。 如果是这种情况,请为您的应用程序池选择相同版本的.NET Framework,或与父级共享应用程序池。 或者,您可以使用<clear />
<handlers>
部分中的<clear />
清除层次结构中的任何处理程序。
<configuration>
<system.webServer>
<handlers>
<clear>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" startupTimeLimit="3600" requestTimeout="23:00:00">
<environmentVariables />
</aspNetCore>
</system.webServer>
</configuration>
我有一篇博文,其中详细介绍了IIS上的托管以及静态文件的一些其他配置:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.