1. 程式人生 > >VS2015 使用IIS Express 支援非localhost訪問

VS2015 使用IIS Express 支援非localhost訪問

使用VS2015 開發C# web工程,使用IIS Express 作為伺服器。自己開發,自己測試沒問題,讓其他人員訪問測試的出現

Bad Request - Invalid Hostname

HTTP Error 400. The request hostname is invalid.


我的機器是區域網和公網都可以訪問的,有一個區域網ip 192.168.8.110,在路由器上做了埠對映,將5678埠對映到了本機的5678埠。

無論用192段ip,還是公網ip,還是127.0.0.1都出現上面那個錯誤。

百度一下:

http://www.cnblogs.com/liluping860122/p/4685564.html

找到一位大俠的解決方法,寫的很棒。

主要是修改 : 工程路徑\.vs\config 資料夾下面的applicationhost.config 這個檔案,找到site 那個節點,修改bindings 屬性,這其實給在iis中編輯繫結是一樣的意思。

具體修改的內容有幾點注意的:

1 如果用實際公網域名

<binding protocol="http" bindingInformation="*:9999:localhost" /> localhost 直接換成公網域名即可,vs不需要使用管理員許可權開啟

2 如果用自定義域名

localhost 替換為自定義域名,如果是管理員許可權開啟不需要編輯系統的hosts檔案,如果是普通許可權開啟,需要編輯hosts檔案

我是win7系統,hosts檔案在 C:\Windows\System32\drivers\etc 下面,是隱藏的,所以要從系統選單-工具-資料夾選項-的顯示中選擇顯示隱藏的資料夾。

我在修改的時候,安裝的防毒軟體小紅傘阻止修改host,選擇允許就可以儲存了,不然會提示有其他檔案正在開啟,不讓儲存。

3 如果使用區域網ip

將localhost 換成具體的ip即可,注意一定要用管理員許可權開啟vs。不然還是不能的。

修改完畢config後,重啟下VS,重啟的時候選擇是否以管理員的身份執行,開啟VS後,執行專案,可以看到右下角的IIS express 托盤中-檢視全部執行程式,會有剛才設定的ip。

區域網ip能使用後,我的外網ip自動也就可以使用了。