1. 程式人生 > >ASP.NET Core 的Windows和IIS宿主(自動翻譯記錄)

ASP.NET Core 的Windows和IIS宿主(自動翻譯記錄)

href imei when webserver cif outside 連接 cor ole

https://docs.microsoft.com/en-us/aspnet/core/publishing/iis?tabs=aspnetcore2x

支持的操作系統

以下操作系統的支持:

  • Windows 7和更新
  • Windows Server 2008 R2和新?

?概念,本文檔中描述的IIS配置也適用於托管ASP.NET核心應用納米服務器IIS,而是指ASP.NET在IIS服務器上的納米核心為特定的指令

HTTP.SYS服務器(原名weblistener)與IIS贏得一個反向代理配置不工作。你必須使用該服務器

IIS配置

使Web服務器(IIS)建立角色和角色服務

Windows桌面操作系統

引導到控制面板>程序>程序和功能>打開或關閉Windows特性(屏幕左側)。打開組互聯網信息服務和網站管理工具。檢查箱IIS管理控制臺。檢查箱萬維網服務。接受默認的特征萬維網服務或自定義IIS功能以滿足您的需要。

技術分享圖片

Windows服務器操作系統

服務器操作系統,使用添加角色和功能向導通過管理菜單或鏈接服務器管理器。上服務器角色步,檢查箱Web服務器(IIS)

技術分享圖片

上角色服務步,選擇IIS角色服務你的欲望或接受服務提供的默認角色。

技術分享圖片

通過進行確認步安裝Web服務器角色和服務。服務器IIS重啟不安裝Web服務器(IIS)作用後需要。

安裝.NET核心Windows服務器托管束

    1. 安裝NET的核心Windows服務器托管束。在主機系統。捆綁安裝.NET核心運行時,.NET核心庫,和ASP.NET的核心模塊。該模塊創建IIS和紅隼服務器之間的反向代理。如果系統沒有連接互聯網,獲取和安裝微軟Visual C++ 2015可再發行在安裝.NET核心Windows服務器托管束。

    2. 重新啟動系統或執行網站是/ Y然後啟動W3SVC從命令提示符拿起改變系統路徑。

筆記

如果你使用IIS共享配置,看隨著ASP.NET核心模塊共享配置IIS

安裝Web部署Visual Studio發布時

如果你打算部署你的應用程序部署工具進入visual studio最新版本,安裝Web部署的托管系統。安裝Web部署,您可以使用Web平臺安裝程序(webpi)或獲得一個安裝程序,直接從微軟下載中心。首選的方法是使用WebPI。webpi提供一個托管服務提供商獨立的安裝和配置。

應用程序配置

使iisintegration組件

  • ASP.NET的核心。
  • ASP.NET酷睿1 X。

一個典型的cs電話createdefaultbuilder開始建立一個主機CreateDefaultBuilder配置紅隼作為Web服務器,使IIS集成的基本路徑和端口配置ASP.NET的核心模塊:

C #
public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        ...

在主機的更多信息,參見在ASP.NET核心舉辦

IIS選項

配置iisintegration服務選項,包括服務的配置iisoptions進入configureservices

C #
services.Configure<IISOptions>(options => 
{
    ...
});
選項默認設置
AutomaticAuthentication true 如果true,認證中間件集HttpContext。用戶並對仿制藥的挑戰。如果false,認證中間件提供了一個身份(HttpContext。用戶)和響應的挑戰時,明確要求的AuthenticationScheme。Windows身份驗證必須啟用IISautomaticauthentication功能
AuthenticationDisplayName null 設置顯示給用戶的登錄頁面的顯示名稱。
ForwardClientCertificate true 如果trueaspnetcore - clientcert女士請求頭是目前的HttpContext.Connection.ClientCertificate填充

web.config

這個web.config配置文件是ASP.NET的核心模塊。它可以提供額外的IIS配置設置。創造、轉化、出版web.config是由核心網(Web SDK。Microsoft.NET.Sdk.Web)。SDK將在項目文件的頂部(。csproj),<Project Sdk="Microsoft.NET.Sdk.Web">。為了防止SDK轉化web.config文件,添加<IsTransformWebConfigDisabled>屬性和設置項目文件true

XML
<PropertyGroup>
  <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
</PropertyGroup>

如果你沒有一個web.config文件在項目發布時用DotNet發布或Visual Studio發布的文件是為你出版輸出。如果你有一個web.config在你的項目文件,它與正確的轉化路徑爭論配置ASP.NET的核心模塊搬到出版輸出。變換不碰IIS配置設置,你已經包含在文件。

創建IIS網站

    1. 在目標IIS系統,創建一個文件夾包含應用程序發布的文件夾和文件,它描述了目錄結構

    2. 在你創建的文件夾中,創建一個日誌把stdout文件夾日誌(如果你打算啟用日誌記錄來解決啟動問題)。如果你打算部署一個應用程序日誌在有效載荷的文件夾,你可以跳過這一步。有一個開放的問題自動創建文件夾。如果你想創建的MSBuild日誌文件夾為你添加以下Target到你的項目文件:

      XML
      <Target Name="CreateLogsFolder" AfterTargets="AfterPublish">
        <MakeDir Directories="$(PublishDir)logs" Condition="!Exists(‘$(PublishDir)logs‘)" />
        <MakeDir Directories="$(PublishUrl)logs" Condition="!Exists(‘$(PublishUrl)logs‘)" />
      </Target>
      
    3. 進入管理器創建一個新的網站。提供一個網站名稱並設置物理路徑對應用程序的部署文件夾中創建。提供封面配置和創建網站

    4. 設置應用程序池沒有托管代碼。ASP.NET的核心運行在一個單獨的流程和管理運行。

    5. 打開添加網站窗口

      技術分享圖片

    6. 配置網站

      技術分享圖片

    7. 在應用程序池面板,打開編輯應用程序池用鼠標右鍵點擊網站的應用程序池和選擇窗口基本設置…從popup菜單

      技術分享圖片

    8. 設置NET CLR版本到沒有托管代碼

      技術分享圖片

      註意:設置NET CLR版本到沒有托管代碼是可選的。ASP.NET的核心並不依賴於加載桌面CLR。

    9. 確認過程模型具有適當權限的身份。

      如果您更改應用程序池默認身份(過程模型&#62;身份從)applicationpoolidentity另一個身份,確認新的身份具有所需的權限來訪問應用程序的文件夾,數據庫,和其他所需資源。

部署應用程序

部署到你創建的目標上的IIS系統文件夾中的應用。部署工具是用於部署的推薦機制。Web部署方案如下。

確認發布APP的部署沒有運行。文件在發布文件夾被鎖定時,應用程序運行。部署不能因為鎖定的文件不能被復制。

Web部署Visual Studio

看到創建發布配置文件的Visual Studio和MSBuild,部署ASP.NET核心應用程序課題學習如何創建一個發布配置為使用Web部署。如果你的主機提供商提供一個發布配置文件或創建一個支持,下載他們的個人資料,使用Visual Studio導入發布對話框

技術分享圖片

Web部署Visual Studio外

你也可以使用部署工具從命令行Visual Studio外。有關更多信息,參見Web部署工具

Web部署方案

如果你不想使用Web部署或不使用Visual Studio中,你可以用幾種方法來移動應用的托管系統,如Xcopy,robocopy,或PowerShell。Visual Studio用戶可以使用發布樣品

瀏覽網站

技術分享圖片

警告

NET的核心應用程序托管通過IIS和紅隼服務器之間的反向代理。為了創建反向代理,這web.config文件必須在內容根路徑(通常是應用程序庫路徑)的部署的應用程序,這是提供給IIS網站的物理路徑。敏感的文件存在於應用程序的物理路徑,包括子文件夾,如my_application.runtimeconfig.jsonmy_application.xml(XML文檔comments),andmy_application.deps.json。這個web.config文件需要創建反向代理紅隼,它阻止IIS服務這些和其他敏感文件。Therefore, it&#39;s important that theweb.config文件不小心刪除重命名或從部署。

數據保護

ASP.NET的核心應用程序商店的鑰匙圈內存在下列條件下:

  • 一個網站托管在IIS。
  • 數據保護堆棧沒有被配置為存儲在持久性存儲的鑰匙圈。

如果密鑰存儲在內存中的應用程序重新啟動時:

  • 所有形式的身份驗證令牌無效。
  • 用戶需要登錄他們的下一個請求。
  • 你的任何數據保護密鑰環不再保護。

警告

數據保護是由幾個ASP.NET中間件的應用,包括那些用於認證。即使你不打電話給數據保護API從您自己的代碼,你應該部署腳本或代碼中的配置數據保護。如果你不配置數據保護,默認情況下,密鑰保存在內存中,當你的應用程序啟動的丟棄。重啟無效的Cookie認證中間件和用戶編寫的餅幹必須重新登錄。

配置數據保護下IIS,你必須使用下列方法之一:

  • 運行PowerShell腳本創造合適的註冊表項(例如,.\Provision-AutoGenKeys.ps1 DefaultAppPool)。本店鍵在註冊表中,使用DPAPI與機寬重點保護。
  • 配置IIS應用程序池加載用戶配置文件。此設置在過程模型節下的高級設置為應用程序池。配置加載用戶配置文件到True。This stores keys under the user profile directory and protects them using DPAPI with a key specific to the user account used for the app pool.
  • 調整你的應用程序代碼使用文件系統的一個關鍵環店。使用X509證書來保護密鑰環,確保它是一個受信任的證書。如果它是一個自簽名的證書,你必須把它放在受信任的根存儲。

當使用IIS在Web場:

  • 使用文件共享,所有的機器都可以訪問。
  • 部署一個X509證書各機。配置代碼中的數據保護

1。創建一個數據保護註冊表配置單元

ASP.NET的應用程序所使用的數據的保護密鑰存儲在註冊表配置單元的應用程序的外部。堅持的鑰匙,對於一個給定的應用程序,您必須創建一個應用程序的應用程序池註冊表配置單元。

對於獨立的IIS安裝,你可以使用數據保護provision-autogenkeys.ps1 PowerShell腳本與ASP.NET的核心應用程序使用的每個應用程序池。這個腳本創建在HKLM註冊表,AC LED只有工作進程帳戶的特殊註冊表項。關鍵是使用DPAPI加密在休息。

在Web場的情況下,一個應用程序可以配置為使用UNC路徑來存儲其數據保護的鑰匙圈。默認情況下,數據保護密鑰不加密。你應該確保該共享文件的權限僅限於Windows帳戶運行的應用程序。此外,你可以選擇保護鑰匙在休息使用X509證書。你可能希望考慮一個機制允許用戶上傳證書證書:地方到用戶的受信任的證書存儲和確保他們可以在所有的機器在運行用戶的應用程序。看到配置數據保護詳情

2。配置IIS應用程序池加載用戶配置文件

此設置在過程模型節下的高級設置為應用程序池。設置加載用戶配置文件True。This stores keys under the user profile directory and protects them using DPAPI with a key specific to the user account used for the app pool.

三.數據保護機寬政策

數據保護系統的默認設置有限的支持機寬政策所有的應用程序,使用數據保護API。看到數據保護更詳細的文檔

子應用程序配置

子應用添加應用程序的根不在包括ASP.NET核心模塊作為一個處理程序。如果你添加的模塊作為子應用程序的處理程序web.config文件,你收到一個500.19(內部服務器錯誤)引用錯誤的配置文件,當你試圖瀏覽子應用程序。下面的示例演示了一個發表的內容web.config為ASP.NET核心子應用程序文件:

XML
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <aspNetCore processPath="dotnet" 
      arguments=".\MyApp.dll" 
      stdoutLogEnabled="false" 
      stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

如果你打算舉辦一個non-asp.net核心子應用程序在ASP.NET的核心應用程序,您必須顯式刪除的子應用程序繼承的處理web.config文件:

XML
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <remove name="aspNetCore"/>
    </handlers>
    <aspNetCore processPath="dotnet" 
      arguments=".\MyApp.dll" 
      stdoutLogEnabled="false" 
      stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

在配置ASP.NET核心模塊的更多信息web.config文件,看ASP.NET的核心模塊介紹話題和ASP.NET的核心模塊配置參考

在web.config配置IIS

IIS的配置仍然是受<system.webServer>web.config對於那些IIS功能,適用於反向代理配置。例如,你可能有IIS在系統級配置為使用動態壓縮,但你可以禁用,與一個應用程序設置<urlCompression>在應用程序的元素web.config文件更多信息,見配置參考<system.webServer>,ASP.NET的核心模塊配置參考和使用IIS模塊與ASP.NET核心。如果你需要單獨的應用程序運行在獨立的應用程序池設置環境變量(支持IIS 10),看appcmd.exe命令部分的Environment Variables <environmentVariables>在IIS的參考文檔主題。

Web.config配置部分of

與.NETFramework應用程序配置的<system.web><appSettings><connectionStrings>,和<location>元素web.config,ASP.NET的核心應用程序配置使用其他配置提供者。有關更多信息,參見配置

應用程序池

當承載多個網站在一個單一的系統,你應該將應用程序互相在自己的應用程序池運行每個應用程序。IIS添加網站對話框的默認行為。當你提供一個網站名稱,文字會自動轉移到應用程序池文本框。一個新的應用程序池是用網站的名稱,當你添加的網站創建。

應用程序池標識

一個應用程序池標識帳戶允許你運行一個應用程序的一個獨特的帳戶下無需創建和管理域或本地帳戶。在IIS 8,IIS輔助進程(是)創建一個新的應用程序池名稱的虛擬賬戶並運行應用程序池中的工作進程在該賬戶默認情況下。在IIS管理控制臺下高級設置為你的應用程序池,確保身份設置使用applicationpoolidentity如下圖所示

技術分享圖片

IIS管理過程創造了一個安全標識符和應用程序池的名稱在Windows安全系統。資源可以利用這個身份擔保;然而,這個身份並不是一個真正的用戶帳戶並不會顯示在Windows用戶管理控制臺。

如果你需要給IIS輔助進程的高架訪問您的應用程序,您必須修改訪問控制列表(ACL)包含您的應用程序的目錄。

  1. 打開Windows資源管理器,瀏覽目錄。

  2. 右鍵單擊目錄性能

  3. 下安防選項卡,單擊編輯按鈕,然後添加按鈕

  4. 點擊位置按鈕,讓你選擇你的系統。

  5. 進入1 apppool \ defaultapppool進入輸入對象名稱來選擇文本框

    技術分享圖片

  6. 點擊檢查名稱按鈕,然後單擊好啊

    技術分享圖片

你也可以通過命令提示符下使用ICACLS工具

控制臺
ICACLS C:\sites\MyWebApp /grant "IIS AppPool\DefaultAppPool":F

故障排除技巧

診斷與IIS部署問題:

  • 研究瀏覽器輸出
  • 檢查系統應用日誌事件查看器
  • 使stdout登錄中.這個ASP.NET的核心模塊日誌提供的路徑找到stdoutlogfile屬性的<aspNetCore>元素web.config。在屬性值提供的路徑文件夾必須在部署存在。您還必須設置stdoutLogEnabled="true"。。。。。。。這是使用的應用程序。Microsoft.NET.Sdk.WebSDK創建web.config默認的文件stdoutlogenabled設置,所以你必須手動提供web.config文件或修改文件以使stdout登錄中.

幾種常見的錯誤不在瀏覽器中,出現應用程序日誌,日誌和ASP.NET的核心模塊到模塊startuptimelimit(默認120秒),startupretrycount(默認值:2)已通過。因此,等待一個完整的前六分鐘推斷模塊未能啟動應用程序的過程。

快速確定應用程序是否正常工作的方法之一是對紅隼直接運行應用程序。如果應用程序被公布為框架依賴部署(FDD),執行dotnet my_application.dll部署文件夾中,它是IIS的物理路徑的應用。如果應用程序已作為一個獨立的部署(SCD),運行應用程序的可執行文件直接從命令提示符,我_ application.exe,部署文件夾中。如果紅隼是監聽默認的5000端口,你可以瀏覽應用程序http://localhost:5000/。如果應用程序的響應通常在紅隼的端點地址,問題是更可能的iis-asp.net核心模塊紅隼配置相關的和不太可能在應用程序本身。

要確定如果IIS反向代理服務器的紅隼正常工作的一種方法是執行一個簡單的靜態樣式表,腳本文件的請求,或圖像從應用程序的靜態文件網站根目錄使用靜態文件中間件。如果應用程序可以提供靜態文件但MVC視圖和其他端點是失敗的,問題是不可能的iis-asp.net核心模塊的相關配置和紅隼在應用程序本身更可能(例如MVC路由或500內部服務器錯誤)。

當該啟動正常但後面IIS應用程序不能運行在系統上本地運行的成功後,你可以暫時添加一個環境變量web.config設置ASPNETCORE_ENVIRONMENT發展。只要你不在應用程序啟動覆蓋環境,這使得網頁開發者例外出現時,該應用程序在系統中運行。設置環境變量ASPNETCORE_ENVIRONMENT在這種方式只推薦分期/測試系統,不接觸互聯網。確保你從刪除環境變量web.config文件完成時。在設置環境變量的信息web.config對於反向代理,看環境變量子元素aspnetcore

在大多數情況下,應用測井協助解決應用程序或反向代理的問題。看到登錄中更多信息

我們最後的故障排除技巧屬於應用程序無法運行升級無論是在.NET核心SDK的開發機或包的版本在應用程序。在某些情況下,非相幹的包可能會打破一個應用程序進行重大升級時。你可以解決大多數這些問題通過刪除binobj在項目文件夾,清理包緩存%UserProfile%\.nuget\packages\localappdata % % nuget V3的\ \緩存,恢復項目,並確認您的系統之前部署已完全刪除重新部署應用程序之前。

小貼士

一個方便的方式來清除包緩存是獲得nuget.exe工具nuget.org,把它添加到你的系統路徑,並執行nuget locals all -clear從命令提示符。你也可以執行dotnet NuGet當地人都清晰從命令提示符命令沒有獲得nuget.exe

常見的錯誤

以下不完整的列表錯誤。如果你遇到一個錯誤不在此列,請留下詳細的錯誤信息,在下面的評論部分。

安裝程序無法獲得VC Redistributable

  • 安裝程序:0x80072efd或0x80072f76 -未指定的錯誤

  • 安裝日誌exception?:錯誤0x80072efd或0x80072f76:未能執行EXE包

    ?日誌位於C:\用戶\用戶\ AppData \ { }地方\溫度\ dd_dotnetcorewinsvrhosting__ { }日誌的時間戳。

故障排除:

  • 如果系統不能訪問Internet的主機捆綁在安裝服務器,這發生異常時,安裝程序無法獲得微軟Visual C++ 2015可再發行。你可以從中獲得一個安裝程序微軟下載中心。如果安裝失敗,您可能沒有收到。NET的核心運行時需要主機框架依賴部署(FDD)。如果你打算舉辦一個FDD,確認運行安裝程序及特點。你可以從獲得的運行安裝程序網絡下載。安裝運行後,重新啟動系統或通過執行重啟IIS網站是/ Y然後啟動W3SVC從命令提示符

操作系統的升級將32位ASP.NET核心模塊

  • 應用程序日誌:該DLL模塊C:\ Windows\System32 inetsrv \ aspnetcore.dll無法加載。數據是錯誤。

故障排除:

  • 在非操作系統文件C:\ Windows \ Syswow64 \ inetsrv目錄不在操作系統升級後保存。如果你有ASP.NET的核心模塊在操作系統升級後再嘗試運行在32位模式的任何apppool OS升級安裝後,您遇到此問題。一個操作系統升級後,修復ASP.NET核心模塊。看到安裝.NET核心Windows服務器托管束。選擇修復當您運行安裝程序

平臺以擺脫沖突

    • 瀏覽器502.5 HTTP錯誤處理功能

    • 應用程序日誌:Application ‘MACHINE/WEBROOT/APPHOST/MY_APPLICATION‘ with physical root ‘C:{PATH}‘ failed to start process with commandline ‘"C:\{PATH}\my_application.{exe|dll}" ‘, ErrorCode = ‘0x80004005 : ff.

    • ASP.NET的核心模塊日誌:未處理的例外:system.badimageformatexception:未能加載文件或程序集“my_application DLL”。試圖加載格式不正確的程序。

故障排除:

  • 確認應用程序運行在本地紅隼。一個過程的故障可能會在應用程序是一個問題的結果。有關更多信息,參見故障排除技巧

  • 確認你沒有設置<PlatformTarget>在你的。csproj以消除沖突。例如,不指定<PlatformTarget>屬於x86出版與消除win10-x64,或者使用DotNet發布C釋放R win10-x64或通過設置<RuntimeIdentifiers>在你的。csprojwin10-x64。該項目發布時沒有警告或錯誤但不具有上述異常對系統登錄。

  • 如果發生此異常的Azure應用程序的部署升級時應用和部署新的組件,從現有部署手動刪除所有文件。揮之不去的不兼容的組件可能會導致System.BadImageFormatException例外部署升級應用程序時。

URI端點錯誤或停止網站

  • 瀏覽器_ _ refused連接錯誤

  • 應用程序日誌:沒有進入

  • ASP.NET的核心模塊日誌:日誌文件不能創建

故障排除:

  • 確認你使用了正確的URI端點的應用。檢查你的綁定。

  • 確認IIS網站不在停止狀態

corewebengine或W3SVC服務器功能殘疾

  • 異常的:IIS 7 corewebengine和W3SVC功能必須安裝使用ASP.NET核心模塊。

故障排除:

  • 確認您已啟用適當的作用和特點。看到IIS配置

不正確的網站或應用物理路徑缺失

  • 瀏覽器沒有權限訪問此網站-拒絕訪問-或-403.14禁用Web服務器的配置不列出該目錄的內容。

  • 應用程序日誌:沒有進入

  • ASP.NET的核心模塊日誌:日誌文件不能創建

故障排除:

  • 檢查IIS網站基本設置和物理應用程序文件夾。確認應用程序在文件夾在IIS網站物理路徑

不正確的作用,模塊沒有安裝,或不正確的權限

  • 瀏覽器500.19內部服務器錯誤請求的頁不能因為該頁的相關配置數據無效訪問。

  • 應用程序日誌:沒有進入

  • ASP.NET的核心模塊日誌:日誌文件不能創建

故障排除:

  • 確認您已經啟用適當的角色。看到IIS配置

  • 檢查程序&#38;功能特色並確認微軟ASP.NET的核心模塊已安裝。if the微軟ASP.NET的核心模塊不在已安裝的程序列表,安裝模塊。看到安裝.NET核心Windows服務器托管束

  • 確保Application Pool&#62;過程模型&#62;身份是集applicationpoolidentity或自定義的身份來訪問應用程序的部署文件夾的權限。

不正確的路徑,缺少路徑變量,主包沒有安裝,系統重新啟動IIS不,VC Redistributable沒有安裝,或dotnet.exe訪問沖突

  • 瀏覽器502.5 HTTP錯誤處理功能

  • 應用程序日誌:Application ‘MACHINE/WEBROOT/APPHOST/MY_APPLICATION‘ with physical root ‘C:\{PATH}‘ failed to start process with commandline ‘".\my_application.exe" ‘, ErrorCode = ‘0x80070002 : 0.

  • ASP.NET的核心模塊日誌:日誌文件創建但空

故障排除:

  • 確認應用程序運行在本地紅隼。一個過程的故障可能會在應用程序是一個問題的結果。有關更多信息,參見故障排除技巧

  • 檢查路徑屬性上<aspNetCore>元素web.config確認它的dotnet一個框架依賴部署(FDD)或我_ application.exe。\一個獨立的部署(SCD)。

  • 一個FDD,dotnet.exe不可通過的路徑設置。確認C:\程序文件\ DOTNET *存在系統路徑設置。

  • 一個FDD,dotnet.exe不可用於應用程序池的用戶身份。確認用戶身份訪問的apppoolC:\程序文件\ dotnet目錄確認沒有否認配置為對用戶身份的apppool規則C:\程序文件\ dotnet和應用程序目錄

  • 你可能已經部署了FDD和安裝.NET核心不重新啟動IIS。重新啟動服務器或通過執行重啟IIS網站是/ Y然後啟動W3SVC從命令提示符

  • 你可能已經部署了FDD不安裝在主機系統的核心運行時網。如果你嘗試部署FDD和沒有安裝.NET核心運行時,運行NET Windows核心服務器安裝包在系統。看到安裝.NET核心Windows服務器托管束。如果你試圖安裝.NET核心運行時對系統沒有連接到互聯網,從獲得運行時網絡下載運行主機安裝包安裝ASP.NET核心模塊。通過重新啟動系統或重新啟動IIS執行完成安裝網站是/ Y然後啟動W3SVC從命令提示符

  • 你可能已經部署了FDD和安裝.NET核心無需重新啟動系統/ IIS。重新啟動系統或通過執行重啟IIS網站是/ Y然後啟動W3SVC從命令提示符

  • 你可能已經部署了FDD和微軟的Visual C 2015 Redistributable(x64)系統中未安裝。你可以從中獲得一個安裝程序微軟下載中心

Incorrect arguments of <aspNetCore> element

  • 瀏覽器502.5 HTTP錯誤處理功能

  • 應用程序日誌:Application ‘MACHINE/WEBROOT/APPHOST/MY_APPLICATION‘ with physical root ‘C:\{PATH}‘ failed to start process with commandline ‘"dotnet" .\my_application.dll‘, ErrorCode = ‘0x80004005 : 80008081.

  • ASP.NET的核心模塊日誌:執行應用程序不存在:“my_application DLL的路徑。

故障排除:

  • 確認應用程序運行在本地紅隼。一個過程的故障可能會在應用程序是一個問題的結果。有關更多信息,參見故障排除技巧

  • 檢查爭論屬性上<aspNetCore>元素web.config確認它是(一個)我的_ application.dll。”一個框架依賴部署(FDD);或(b)不存在,空字符串(arguments=""),或一組應用程序的參數(arguments="arg1, arg2, ...")為獨立部署(SCD)。

失蹤的.NET Framework版本

  • 瀏覽器502.3錯誤網關-有一個連接錯誤而試圖請求路由。

  • 應用程序日誌:ErrorCode = Application ‘MACHINE/WEBROOT/APPHOST/MY_APPLICATION‘ with physical root ‘C:\{PATH}‘ failed to start process with commandline ‘"dotnet" .\my_application.dll‘, ErrorCode = ‘0x80004005 : 80008081.

  • ASP.NET的核心模塊日誌:缺少方法,文件,或裝配的例外。的方法,文件,或裝配中的異常指定一個.NET框架的方法,文件,或裝配。

故障排除:

  • 安裝.NET Framework的版本被從系統。

  • 一個框架依賴部署(FDD),確認您已正確安裝在系統的運行。如果你升級一個項目從1.1到2,部署到主機系統,和接受這一例外,確保你安裝2框架對主機系統。

停止應用程序池

  • 瀏覽器503服務不可用

  • 應用程序日誌:沒有進入

  • ASP.NET的核心模塊日誌:日誌文件不能創建

故障檢修

  • 確認應用程序池不在停止狀態

IIS集成中間件沒有實現

  • 瀏覽器502.5 HTTP錯誤處理功能

  • 應用程序日誌:Application ‘MACHINE/WEBROOT/APPHOST/MY_APPLICATION‘ with physical root ‘C:\{PATH}‘ created process with commandline ‘"C:\{PATH}\my_application.{exe|dll}" ‘ but either crashed or did not reponse or did not listen on the given port ‘{PORT}‘, ErrorCode = ‘0x800705b4‘

  • ASP.NET的核心模塊日誌:日誌文件的創建和顯示正常運行。

故障檢修

  • 確認應用程序運行在本地紅隼。一個過程的故障可能會在應用程序中是一個問題的結果。有關更多信息,參見故障排除技巧

  • 確認你已經正確地引用IIS集成中間件通過調用useiisintegration()。在應用程序的方法webhostbuilder()(ASP.NET核心1。x)或使用CreateDefaultBuilder方法(ASP.NET核心×)。See在ASP.NET核心舉辦詳情

Sub-application includes a <handlers> section

  • 瀏覽器HTTP錯誤500.19 -內部服務器錯誤

  • 應用程序日誌:沒有進入

  • ASP.NET的核心模塊日誌:日誌文件的創建和顯示正常運行的應用程序的根。日誌文件不為子應用。

故障檢修

  • 確認子應用程序的web.config文件不包括<handlers>區域

應用程序配置的一般問題

  • 瀏覽器502.5 HTTP錯誤處理功能

  • 應用程序日誌:Application ‘MACHINE/WEBROOT/APPHOST/MY_APPLICATION‘ with physical root ‘C:\{PATH}‘ created process with commandline ‘"C:\{PATH}\my_application.{exe|dll}" ‘ but either crashed or did not reponse or did not listen on the given port ‘{PORT}‘, ErrorCode = ‘0x800705b4‘

  • ASP.NET的核心模塊日誌:日誌文件創建但空

故障檢修

  • 這個一般的異常表示過程啟動失敗,最有可能是由於應用程序配置問題。指目錄結構確認你的應用程序的部署,文件和文件夾是恰當的,你的應用程序的配置文件,包含你的應用程序和環境的正確設置。有關更多信息,參見故障排除技巧

資源

  • ASP.NET的核心模塊介紹
  • ASP.NET的核心模塊配置參考
  • 使用IIS模塊與ASP.NET核心
  • ASP.NET核心簡介
  • 官方的微軟IIS站點
  • 微軟TechNet庫:Windows服務器

ASP.NET Core 的Windows和IIS宿主(自動翻譯記錄)