【问题标题】:WebAPI 2 Routing/hosting mishapsWebAPI 2 路由/托管事故
【发布时间】:2015-06-25 05:29:49
【问题描述】:

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

当前布局是(带有通用名称):

-Server.Project -Services.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)来使用 Route Debugger。都不工作。我得到一个 404。

这让我相信我的某些设置有误,以至于 WebAPI 的东西实际上并没有正确启动和托管。

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

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

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

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

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

我错过了什么吗?

如果有什么不清楚的地方,抱歉。让我知道,以便我清除它。

谢谢。

编辑:

所以,我有一个不同的路由调试器来安装和合作。

(安装包 RouteDebugger)。

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

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

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

【问题讨论】:

  • 最令人怀疑的部分是 Route Debugger 包没有做它应该做的事情。我用 nuget 安装它,并尝试点击 localhost/Application/rd,它甚至找不到。那么,我还需要做些什么才能让事情正常旋转吗?

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


【解决方案1】:

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

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

localhost/Application/api/TestAPI/anything

顺便说一句,启动一个全新的 Web API 项目可能是值得的。改造现有项目可能会导致比其价值更多的麻烦。

【讨论】:

  • 是的。我将其作为 api 进行,但后来将其更改为 TestAPI。不过,两者都不起作用。编辑:忘记 Shift-Enter 我无法启动新项目。它必须进行改造,并与当前的“service.asmx”风格的东西一起运行。我能够将所有这些作为独立的工作,并且所有愚蠢的小样本都工作得很好。所以,我确信这里有一些我不熟悉的火车残骸。
猜你喜欢
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-26
  • 1970-01-01
  • 2017-07-21
  • 2011-03-04
相关资源
最近更新 更多