Mir*_*hat 5 .net c# windows deployment 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.
Run Code Online (Sandbox Code Playgroud)
我已经像这样删除了 .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>
Run Code Online (Sandbox Code Playgroud)
为了运行 ASP.NET Core 应用程序,请确保:
web.config托管捆绑包包含用于 IIS 的 ASP.NET Core 模块,允许 IIS 启动。如果没有 ASP.NET Core,应用程序将无法在 IIS 上运行。
您还需要发布您的应用程序,这会生成一个最终输出文件夹,其中包含您的二进制文件和配置文件,其中包括web.config根目录中的 和wwwroot包含您的内容的根文件夹。要进行测试,您应该确保可以使用以下命令从命令行运行您的应用程序:
dotnet yourMainAssembly.dll -c Release
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,请首先修复此问题,因为这本质上是 IIS 触发的。一旦独立运行,您可以尝试使用 IIS。
在 Visual Studio 中创建的 ASP.NET Core 项目会自动包含 web.config,其中应包含在 IIS 下运行所需的一切。对于基本设置来说,这应该是您所需要的。生成的 web.config 应该负责让您的应用程序运行。
如果您使用的是虚拟机,则可能会遇到父端配置渗透到虚拟机中的问题,因为虚拟机继承了父级的设置。如果是这种情况,请为您的应用程序池选择相同版本的 .NET Framework,或者与父级共享应用程序池。或者,您可以使用<clear />部分<handlers>来清除层次结构中的所有处理程序。
<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>
Run Code Online (Sandbox Code Playgroud)
我有一篇博客文章,其中包含有关在 IIS 上托管的更多详细信息以及静态文件的一些附加配置:
| 归档时间: |
|
| 查看次数: |
889 次 |
| 最近记录: |