vs中開發web站點使IIS Express支援區域網連線
在開發webapi的時候,客戶端裝置都會使用區域網的地址訪問webapi,有時候需要除錯api。這個時候就需要使用一些技巧了,這裡我記錄了我常用的兩種方式,在區域網內除錯vs中的web站點
1.修改IIS Express的applicationhost.config檔案
2.附加到程序除錯
兩者都需要以管理員身份啟動IIS
修改IIS Express的applicationhost.config檔案
1.要想在區域網內除錯vs中的web站點,這種方式是最簡單的。先新建一個web站點,執行之後,在工作列找到IIS
Express 的圖示,點選懸著“顯示所有應用程式”,可以看到這個配置的路徑,點選開啟。

2.找到sites節點,新增你的區域網的ip地址

site節點下的bingings(複數形式),可以繫結多個資訊。紅框中是我新增的,可以看到bindingInfomation=“ :53312:192.168.1.116”,這個192.168.1.116是我本機的地址,也可以修改為 :53312: *
3.注意的是必須是除錯模式、管理員身份執行。否則會出現下面的錯誤


4.在cmd中使用IIS Express開啟所建的網站
我們將““C:\Program Files (x86)\IIS Express”(64位)或“C:\Program Files\IIS Express”(32位)”加入到系統變數,這個比較簡單,忘的話百度一下就ok。將路徑新增到系統變數的Path中來。
開啟cmd,輸入appcmd就可以看到如下提示

檢視config檔案的資訊命令如下:
appcmd /apphostconfig:E:\XamarinForms\DebugSample\.vs\config\applicationhost.config list site

我們可以在命令提示符中,使用iisexpress開啟建立的網站,在控制檯中輸入一下
這個站點id是2.
iisexpress /config:E:\XamarinForms\DebugSample\.vs\config\applicationhost.config /siteid:2
這個是時候開啟瀏覽器,你會發現http://localhost:53312/ 是可以訪問的,但是
ofollow,noindex" target="_blank">http://192.168.1.116:53312/ 出現bad request 400錯誤無法訪問。
以管理員的方式開啟cmd,為非管理員帳戶保留指定的URL
netsh http add urlacl url= http:// *:53312/ user=everyone

記住要關閉防火牆,開啟53312埠。
執行結果如圖:

附加到程序除錯
這種方式不太正經,不需要修改applicationhost.config檔案。
附加到程序除錯的好處是。在進行斷點除錯,需要經過專案編譯成功後,啟動IIS Express 開啟瀏覽器,最後進入我們的斷點,附加到程序除錯後節約時間。還可以除錯區域網內的web站點。
1.部署IIS站點
剛剛新建的站點DebugSample,開啟IIS新增這個站點目錄。部署站點就不浪費時間了,百度起碼有10萬篇。
2.先在iis開啟這個站點,然後管理員身份開啟站點debugSample。選擇除錯>附加到程序

這樣我們就可以在vs中除錯客戶端的請求了,

總結
1.修改IIS Express的applicationhost.config檔案2.附加到程序除錯,這兩種方式都需要以管理員身份啟動vs。附加到程序除錯的優勢在於不需要等待vs編譯專案成功後啟動IIS express,還可以進行客戶端請求的除錯,但是這種方式很多地方需要注意,只有你在實際操作過程去體會了