WebAPI 2路由/托管不幸

时间:2015-06-23 20:50:08

标签: c# asp.net asp.net-web-api

我有一段非常糟糕的时间让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

此路由调试器启动并显示没有路径匹配,但它也显示了我定义但未找到的路由路径。

...所以现在我更加困惑。他们是如何出现并且明显知道但无法联系到的?

1 个答案:

答案 0 :(得分:0)

如果您遵循“典型”WebAPI设置教程,您可以定义自定义ApiController路由以包含“/ api”。

您的所有网址应如下所示:

localhost/Application/api/TestAPI/anything

顺便说一句,仅仅启动一个全新的Web API项目可能是值得的。改造现有项目可能会引起更多令人头疼的问题。