2016-03-05 65 views
4

我使用Owin和topps創建了一個windows服務。
該應用程序是一個WebAPI,它監聽端口9000,並且我允許在我的防火牆規則中使用此端口。
當我執行Windows Server 2008上的.exe文件,我可以在本地使用它(本地主機:9000)
但是當我嘗試從其他機器訪問它,我得到這個錯誤信息:HTTP Error 400 - OWIN with Topshelf

HTTP Error 400. The request hostname is invalid 

什麼我錯過了嗎? 請幫忙。

回答

0

也許遠程計算機上的主機條目?記住「localhost」指向當前機器本身。您可能需要設置本地IIS服務器,將WebApi部署到該服務器,以便其他計算機可以看到它。 Incidentelly,您的ASP.Net開發服務器(Visual Studio的內置服務器)無法爲本地服務器以外的其他頁面提供服務,因此您可能需要使用Fiddler或Cassini之類的東西來欺騙它以充當路由在調試期間。

有一些相關的答案,這樣的位置: Can I access ASP.NET Development server in an intranet?

我希望它能幫助你

+0

但如果我想使用自己的主機? –

+0

你的意思是與紅隼或什麼?當然,這也應該工作。最重要的是,Visual Studio的開發環境不會給你任何「本地主機」地址以外的東西,所以即使在防火牆打開的情況下,它也不會工作。 –

+0

我的意思是與owin自己的主機。我聽說owin你不需要IIS了 –

8

這個解決我的問題,這可能是超級明顯的給你,但不如我。
而不是使用此代碼:

WebApp.Start("http://localhost:8080/"); 

我不得不用這樣的:

當然
WebApp.Start("http://*:8080/"); 

人們不應該忘記在防火牆中打開端口了。

+0

這爲我解決了這個問題,雖然現在應用程序必須以管理員權限運行 - 所以調試起來並不容易。當作爲服務運行時,它使用的是「本地系統」,這看起來很好,所以它至少工作。 – GPW