我創建了一個解決方案有兩個項目:一個是一個類庫使用自託管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";
我能看到的路徑/ WEB-API配置? – 2013-04-10 14:38:38
是的請張貼路線。並檢查您的服務以管理員身份運行。我不確定,但可能需要在本地系統上預留一個URL。 – Fabske 2013-04-10 14:50:30