2013-04-10 47 views
4

我創建了一個解決方案有兩個項目:一個是一個類庫使用自託管Web API(用http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self-host-a-web-api的幫助下創建的),二是與TopShelf創建一個窗口服務。此解決方案的目的是通過使用Web API來獲得關於服務的狀態報告。無控制器由網絡API發現雖然控制器存在

一切工作正常,但是當我的目標解決方案中重新創建我的解決方案的整個應用程序不能正常工作。 Windows服務似乎是工作,但是當我輸入localhost:8080 /測試這是假設以查看OK(它在開頭提到的單獨的測試解決方案所做的),它拋出一個錯誤(可以看作是一個xml):

Message: No HTTP resource was found that matches the request URI 'http://localhost:8080/Test'. 
MessageDetail: No type was found that matches the controller named 'Report'. 

在包含SelfHost的項目中有一個ReportController(從ApiController繼承),但不知何故它是「可見的」。我猜測(我相信一個愚蠢的猜測),並將其移至Windows服務項目,但它也不起作用。

有人能告訴我什麼是我面臨的問題?爲什麼沒有看到控制器是否有簡單的解決方案?

編輯: 我的路由看起來是這樣的:

var config = new HttpSelfHostConfiguration(String.Format("http://localhost:{0}", port)); 
config.Routes.MapHttpRoute("API Default", "{action}", new { controller = defaultControllerName }); 

其中

defaultControllerName = "Report"; 
+0

我能看到的路徑/ WEB-API配置? – 2013-04-10 14:38:38

+0

是的請張貼路線。並檢查您的服務以管理員身份運行。我不確定,但可能需要在本地系統上預留一個URL。 – Fabske 2013-04-10 14:50:30

回答

7

這是一個恥辱承認這一點,但它爲什麼沒有在控制器配合工作說謊的原因沒有訪問修飾符的類。讓它公開修正錯誤。

+1

只需注意:該方法也需要公開。 – 2013-12-10 19:23:46

+0

幹得好!這並不可恥。我們都會犯錯誤,在某些場合看到別人的錯誤會非常有幫助,並會浪費大量時間。 (沒發生在我身上,但可以!) – JotaBe 2014-02-20 15:02:33

+0

這是一個恥辱,該錯誤信息是不是描述 – 2017-07-25 06:03:36