【发布时间】:2014-08-28 12:24:53
【问题描述】:
我有一个 Owin Startup 类,它注册一个 WebApi 控制器操作并使用 IAppBuilder.UseWebApi 将其挂钩。我的路线模板是/api/packages/{id}/{version},其中version 可能包含句点(如1.0.0)。
这适用于自托管,但是当我尝试使用 Microsoft.Owin.Host.SystemWeb 在 IIS 中运行我的代码时,当路径看起来像静态内容请求时,某些东西会阻止我的操作被调用。
例如,GET /api/packages/Foo/1.0 在自己的主机上工作,但在 IIS 上导致 404。
如果我在GET /api/packages/Foo/1.0/ 中添加一个斜杠,它可以在自主机和 IIS 中使用。
似乎 UseWebApi 方法中的某些东西阻止了 Web Api 处理看起来像带有扩展名的文件的请求。
其他 Owin 中间件看到所有这些请求,所以我知道该请求正在进入 Owin 管道,但是关于 UseWebApi 方法的某些内容似乎忽略了一些请求。
相关:Owin Middleware results in 404 on server、Owin hosted on IIS doesn't capture URLs with Dot "."
【问题讨论】:
标签: iis asp.net-web-api owin