.NET6 debug on local IIS
.NET6, NET Core, 在 local IIS 偵錯
參考文章
開發環境
OS: Windows 11 IDE: Visual Studio Community 2022 目標平台: .NET6 系統骨幹: Blazor Server App
取得工具與功能
確認有安裝【ASP.NET 與網頁程式開發\開發時間的 IIS 支援】。

IIS 設定紀錄
前置條件:已開發好初步階段,打算進行SIT。
IIS 設定中站台【繫結】的設定與一般 WebApp 網站設定是一樣的。

在【基本設定】中的『實體路徑』欄位是指向專案目錄而不是bin目錄。

開發專案屬性設定
打開 WebApp 專案【屬性\偵錯】可以看到「開啟 debug 啟動設定檔 UI」。

加入 IIS 的啟動設定,指定:
環境變數:
ASPNETCORE_ENVIRONMENT=Development
啟動瀏覽器:ture
應用程式 URL:
https://localhost:443
, 因為打算啟用SSL模式所以port是443,不打算用SSL那port就是80。
這個UI的設定會填入到 launchSettings.json
啟動設定檔,直接編輯也可以。

成果
將會自動在專案目錄產生 web.config 組態檔,這是IIS啟動網站的依據。這個 web.config 將告訴 IIS 這是 .NET Core WebApp 網站與如何啟動它。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="bin\Debug\net6.0\YourApp.exe" arguments="" stdoutLogEnabled="false" hostingModel="InProcess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_HTTPS_PORT" value="443" />
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</location>
</configuration>
啟動設定檔(launchSettings.json)會增加 IIS 啟動的設定。命名可以不用 IIS 字樣只是方便辦認。
{
"profiles": {
"YourApp": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"dotnetRunMessages": "true"
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS": { /*------ IIS 相關設定 ------ */
"commandName": "IIS",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
},
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iis": { /*------ IIS 相關設定 ------ */
"applicationUrl": "https://localhost:443",
"sslPort": 0
},
"iisExpress": {
"applicationUrl": "http://localhost:60317/",
"sslPort": 44317
}
}
}
Last updated