【发布时间】:2016-05-11 10:55:52
【问题描述】:
我正在尝试使用具有 ASP .net Web API 和 Owin 组件的单声道运行一个项目 (refer solution here)。项目构建成功。但是,当我到达端点http://127.0.0.1:6666/customers 时,我得到以下错误。
System.Web.HttpException
The resource cannot be found.
Description: HTTP 404.The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Details: Requested URL: /customers
Exception stack trace:
at System.Web.StaticFileHandler.ProcessRequest (System.Web.HttpContext context) [0x000a1] in /builddir/build/BUILD/mono-4.4.0/mcs/class/System.Web/System.Web/StaticFileHandler.cs:77
at System.Web.DefaultHttpHandler.BeginProcessRequest (System.Web.HttpContext context, System.AsyncCallback callback, System.Object state) [0x00098] in /builddir/build/BUILD/mono-4.4.0/mcs/class/System.Web/System.Web/DefaultHttpHandler.cs:101
at System.Web.HttpApplication+<Pipeline>c__Iterator1.MoveNext () [0x00d9c] in /builddir/build/BUILD/mono-4.4.0/mcs/class/System.Web/System.Web/HttpApplication.cs:1335
at System.Web.HttpApplication.Tick () [0x00000] in /builddir/build/BUILD/mono-4.4.0/mcs/class/System.Web/System.Web/HttpApplication.cs:927
但是,CustomersController.Get() 端点被正确调用,这意味着框架能够转到正确的控制器。但是在终点之后发生了一些不好的事情。
注意: 值得一提的是,普通的 ASP .Net Web API 项目(没有 OWin)可以正常工作。 仅在 OWin 集成时出现问题。
我正在使用:
Mono JIT 编译器版本 4.4.0
Monodevelop 5.10
有关 Nuget 包的版本,请参阅 packages.config
这是WebApiConfig.cs
这是CustomerController.cs
这是Web.config
如果您想尝试一下,请refer/pull the code 并将其导入monodevelop。
我尝试在 Windows 中运行此解决方案,它在那里运行良好。
我无法弄清楚这种行为的原因。如果有人可以为我提供一些解决此问题的建议,那将非常有帮助。
【问题讨论】:
-
显示 API 的路由配置并显示有问题的控制器。必须下载一个 zip 文件来尝试重现您的问题,并带有恶意软件的味道。 (恕我直言)
-
@Nkosi:将源代码托管在 github 上,方便查看。此外,使用指向您要求的文件的指针更新了问题。
-
查看了代码,乍一看,一切看起来都按照应有的方式进行了配置。它在 Windows 上按预期工作的事实可能意味着该问题特定于单声道。我会留意类似的问题。
-
运行时你在哪里托管 api。
-
看起来不像我的问题。就像我说的,我能够成功地点击 action 方法,但是从 action 方法返回后发生了一些事情并给了我 404 错误。此外,只有在集成 OWIN 时才会出现此问题。没有 OWIN,WebAPI 也能正常工作。
标签: asp.net asp.net-web-api mono owin monodevelop