web.config 完整相容。預設位置:%USERPROFILE%\Documents\IISExpress\config\applicationhost.config (位於使用者文件夾,修改無需管理員權限)。
<system.applicationHost>
<applicationPools> <!-- 5 內建集區:CLR 2.0/4.0 整合/經典 + 非受控 -->
<listenerAdapters> <!-- HTTP/HTTPS 協定適配器 -->
<sites> <!-- 站點定義核心 -->
<site name="WebSite1" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:localhost" />
</bindings>
</site>
<applicationDefaults applicationPool="Clr4IntegratedAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
<webLimits />
</system.applicationHost>
name:站點唯一名稱 (啟動參數 /site:名稱 使用)。id:數字 ID (內部識別)。serverAutoStart:true 表示 IIS Express 啟動時自動載入 (未指定站點時);false 僅明確指定時載入。bindingInformation="IP:PORT:HOSTNAME" (三段式)。*:8080:localhost (所有 IP、8080 埠、主機名 localhost)。localhost 限制僅本機回環介面可存取,若需區網存取需改為 *:8080: (主機名留空) 或具體 IP。protocol="https" + SSL 憑證綁定 (需預先 netsh http add sslcert)。path="/" 根應用程式。<application path="/api" applicationPool="Clr2IntegratedAppPool">...</application>。applicationPool 指定專用集區 (預設繼承 applicationDefaults)。<application> 至少一個 path="/" 對應實體根目錄。<virtualDirectory path="/content/" physicalPath="D:\Projects\Content" />。allowSubDirConfig="true" 允許子目錄 web.config 覆蓋設定。.csproj <UseIISExpress>true</UseIISExpress>)。| 情境 | 原因 | 解決方案 |
|---|---|---|
| 綁定連接埠 < 1024 (如 80/443) | 需特權連接埠 | 改用 ≥ 1024 埠 (8080/44300),或 netsh http add urlacl url=https://*:80/ user=Everyone (需管理員一次性執行) |
| 綁定主機名非 localhost (如 myapp.local) | 需修改 hosts + HTTP.SYS URL ACL | 開發階段堅持用 localhost + 埠號;生產部署才設定正式主機名 |
| SSL 憑證綁定 | 需機器層級憑證存儲存取 | 使用 IIS Express 內建自我簽署憑證 (預設 44300 埠),或 netsh http add sslcert 一次性配置 |
IISExpress.exe /site:MySite:啟動指定站點。IISExpress.exe /path:"D:\Projects\MySite" /port:8080 /clr:v4.0:臨時啟動指定路徑站點 (不寫入 config)。IISExpress.exe /systray:true:顯示系統匣圖示,右鍵可快速啟停站點。IISExpress.exe /config:"D:\Custom\applicationhost.config":使用自訂配置檔。physicalPath 路徑存在、IIS_IUSRS/當前使用者有讀取權限。netsh http delete sslcert ipport=0.0.0.0:44300 清除舊綁定,重新啟動 VS 讓 IIS Express 重新產生自我簽署憑證。%USERPROFILE%\Documents\IISExpress\config\ 下檔案,且已重新啟動 IIS Express (系統匣圖示 → 結束 → VS 重新啟動偵錯)。