首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

VS2013 發布 WebService:localhost 可訪問但 IP 不通?防火牆與綁定配置全排查

     編輯:程式設計疑難解答

經典問題:IIS 發布 WebService 後,https://localhost/Service.asmx 正常,換成本機 IP https://192.168.x.x/Service.asmx 卻提示「無法訪問此網站」。本文從綁定、防火牆、應用程式池、瀏覽器代理四個維度給出完整排查清單。

核心原因速覽

  1. IIS 站點綁定未包含 IP:預設僅綁定 localhost 或主機名。
  2. Windows 防火牆攔截入站 80/443 埠。
  3. 應用程式池身份權限不足:無法讀取實體路徑。
  4. 瀏覽器代理/繞過本地設定:IE/Edge 對本地 IP 處理不同。

圖解修復步驟

1. IIS 站點綁定配置(關鍵)

打開 IIS 管理器 → 站點 → 右鍵「編輯繫結」 → 新增:

  • 類型:http
  • IP 位址:所有未指派(或具體本機 IP)
  • 埠:80
  • 主機名:留空

IIS 綁定配置截圖

新增站點綁定截圖

2. 防火牆入站規則

# PowerShell 管理員執行
New-NetFirewallRule -DisplayName "IIS HTTP In" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "IIS HTTPS In" -Direction Inbound -LocalPort 443 -Protocol TCP -Action Allow

或圖形介面:控制台 → Windows Defender 防火牆 → 進階設定 → 入站規則 → 新增規則 → 埠 → TCP 80,443 → 允許連線。

3. 應用程式池身份

  • 基本設定 → 應用程式池 → 選 ApplicationPoolIdentity(推薦)或自定義帳號(需 IIS_IUSRS 權限)。
  • 實體路徑權限:右鍵資料夾 → 安全性 → 編輯 → 新增 IIS_IUSRS → 讀取/執行、列出資料夾內容、讀取。

4. 瀏覽器代理繞過本地

IE/Edge:Internet 選項 → 連線 → 區域網路設定 → 勾選「繞過本地位址的 Proxy 伺服器」。
Chrome:預設繞過,但若配置了 SwitchyOmega 等擴展,需加入 <local> 或具體 IP 至繞過清單。

進階排查清單

現象可能原因驗證命令
IP 訪問 404綁定主機名不匹配curl -v https://IP/Service.asmx
IP 訪問 503應用程式池未啟動/崩潰IIS 管理器查看狀態、事件檢視器
局域網其他機器不通防火牆/路由/殺毒軟件攔截telnet IP 80、netstat -an | findstr :80
HTTPS 證書錯誤自簽證書不受信匯入受信任根憑證機構、或用有效證書

一鍵診斷腳本

@echo off
echo ===== IIS 站點綁定 =====
appcmd list site
echo ===== 80 埠監聽 =====
netstat -an | findstr :80
echo ===== 防火牆規則 =====
netsh advfirewall firewall show rule name=all | findstr "80 443"
echo ===== 應用程式池狀態 =====
appcmd list apppool /state:Started
pause

照著清單逐項核對,90% 的「localhost 通 IP 不通」問題可在 10 分鐘內解決。記住:綁定所有未指派 IP + 開放防火牆埠 + 正確應用程式池身份 是鐵三角。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved