我有一段非常糟糕的时间让WebAPI 2设置正常工作。我试图将其置于包含多个项目的现有解决方案中。
当前布局是(带有通用名称):
-Server.Project -Services.Project
目前,IIS正在进行托管。 IIS中有一个名为Application的应用程序设置。
所以,现在,如果你去localhost / Application / service.asmx,一切都会旋转并做到这一点。 global.asax.cs文件和大多数服务类都在Services.Project中,即使Server.Project是软件的入口点。
我想利用WebAPI的新东西。
我在Services.Project中定义了一个控制器(TestAPIController),并在一个配置文件中定义了默认映射(来自所有示例)。从Application_Start()调用Register()函数。我已经证实它至少被称为。
如果我去:
localhost / Application / TestAPI /任何事情,它给我一个404错误。
我尝试使用Route Debugger安装软件包并转到localhost / Application / rd(也尝试过/ Application / TestAPI / rd)。都没有工作。我得到了404.
这让我相信我有一些设置错误,因此WebAPI的内容实际上并没有正确地启动和托管。
我也尝试过做OWIN启动,但它似乎没有帮助。
为此,我刚刚将相应的启动类内容添加到我的web.config,并添加到Services.Project中的Global类。
我已经验证了Owin的Configuration()函数也被调用了,但是我仍然无法点击我设置的路径。
我认为入口点是Server.Project但控制器/路由在Services.Project中定义的事实可能是问题的一部分。
但是,所有程序集都放在同一个bin目录中。我一直认为这应该允许加载/找到所有内容。
我错过了什么吗?
如果有什么不清楚,抱歉。让我知道所以我可以清理它。
感谢。
编辑:
所以,我有一个不同的路由调试器来安装和合作。
(install-package RouteDebugger)。
如果我点击了我的主要网址:localhost / application
此路由调试器启动并显示没有路径匹配,但它也显示了我定义但未找到的路由路径。
...所以现在我更加困惑。他们是如何出现并且明显知道但无法联系到的?
答案 0 :(得分:0)
如果您遵循“典型”WebAPI设置教程,您可以定义自定义ApiController路由以包含“/ api”。
您的所有网址应如下所示:
localhost/Application/api/TestAPI/anything
顺便说一句,仅仅启动一个全新的Web API项目可能是值得的。改造现有项目可能会引起更多令人头疼的问题。