WebAPI 2路由/主机故障

本文关键字:主机 故障 2路 WebAPI | 更新日期: 2023-09-27 17:59:21

让WebAPI 2的设置工作起来有点困难。我正试图将其放置在包含多个项目的现有解决方案中。

目前的布局是(通用名称):

-Server.Project-服务。项目

目前,IIS正在进行托管。IIS中有一个名为application的应用程序安装程序。

所以,现在如果您转到localhost/Application/service.asmx,一切都会启动并按原样进行。global.asax.cs文件和大多数服务类都在Services.Project中,尽管Server.Project是软件的入口点。

我想利用WebAPI的新功能。

我在Services.Project中定义了一个控制器(TestAPIController),以及一个具有默认映射的配置文件(来自所有示例)。Register()函数是从Application_Start()调用的。我已经证实它至少被调用了。

如果我去:

localhost/Application/TestAPI/任何东西,它都会给我一个404错误。

我尝试通过安装包并转到localhost/Application/rd(也尝试了/Application/TestAPI/rd)来使用路由调试器。两者都不起作用。我得了404分。

这让我相信我的设置有问题,所以WebAPI的东西实际上没有正常运行和托管。

我也试过启动OWIN,但似乎没有帮助。

为此,我只是在web.config和Services.Project.中的Global类中添加了适当的启动类内容

我已经验证了Owin的Configuration()函数也被调用了,但我仍然无法到达我设置的路径。

我认为入口点是Server.Project,但控制器/路由是在Services.Project中定义的,这可能是问题的一部分。

但是,所有程序集都放置在同一个bin目录中。我被引导相信这应该允许加载/查找所有内容。

我是不是错过了什么?

如果有什么不清楚的地方,对不起。让我知道,这样我就可以澄清了。

谢谢。

编辑:

因此,我有了一个不同的调试器来安装和协作。

(安装程序包RouteDebugger)。

如果我点击了我的主URL:localhost/application

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

所以现在我更困惑了。他们是如何出现的,显然是已知的,但却无法联系到?

WebAPI 2路由/主机故障

如果您遵循了"典型"的WebAPI设置教程,则会将自定义ApiController路由定义为包含"/api"。

你所有的网址应该看起来像:

localhost/Application/api/TestAPI/anything

顺便说一句,仅仅启动一个全新的Web API项目可能是值得的。改造一个现有的项目可能会带来更多的麻烦。