[英].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.