我用两个项目创建了一个解决方案:一个是带有 Self Host Web API 的类库(在http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self的帮助下创建-host-a-web-api ),第二个是使用 TopShelf 创建的 windows 服务。此解决方案的目的是使用 Web API 获得有关服务的状态报告。
一切正常,但是当我在目标解决方案中重新创建我的解决方案时,整个应用程序无法正常工作。Windows 服务似乎正在运行,但是当我键入 localhost:8080/Test 时,它应该可以查看(并且它在开头提到的单独测试解决方案中确实如此)它会引发错误(以 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'.
项目中有一个 ReportController(继承自 ApiController),其中包含 SelfHost 但不知何故它是“可见的”。我猜测了一下(我相信这是一个愚蠢的猜测)并将其移至 Windows 服务项目,但它也无法正常工作。
有人可以告诉我我面临的问题是什么吗?如果它有一个简单的解决方案,为什么它看不到控制器?
编辑: 我的路由如下所示:
var config = new HttpSelfHostConfiguration(String.Format("http://localhost:{0}", port));
config.Routes.MapHttpRoute("API Default", "{action}", new { controller = defaultControllerName });
在哪里
defaultControllerName = "Report";