簡體   English   中英

.net核心應用程序錯誤502.5如果在IIS中作為虛擬目錄運行

[英].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應用程序,請確保:

  • 擁有ASP.NET Core Web Hosting Bundle (服務器所需!)
  • 發布您的應用程序 - 應包含web.config
  • 將“發布”輸出部署到服務器
  • 設置應用程序池
  • 將.NET Framework設置為none(可選但通常是個好主意)
  • 使用在虛擬文件夾中具有讀取權限的帳戶

托管軟件包包括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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM