处理程序映射的嵌套 WebAPI 问题(继承问题?



我有一个 Asp.net WebAPI 2 (.net 4.5) 站点在我的本地计算机上隔离工作,我现在想将其作为虚拟应用程序"嵌入"在 Web 表单 (.net 4.0) 应用程序中。

在服务器上,我已经设置了一个新的站点和应用程序池,并在那里配置了API,它工作正常。然后,我在父 Web 窗体应用程序中创建了一个虚拟应用程序,并将其指向相同的文件夹位置和应用程序池。

我通过将 system.web 包装在位置元素中来阻止其继承

<location path="." inheritInChildApplications="false">

这已经解决了我遇到的一些问题,但现在我遇到了 500 错误。我可以看到事件日志:

异常消息:System.Web.Routing.UrlRoutingModule 不 实现 IHttpHandlerFactory 或 IHttpHandler。

我认为这不是实际问题,而是配置文件中处理程序映射问题的指标。我已经为父应用程序中映射的所有处理程序添加并添加了元素,但这还没有解决它。如果我进入 API 的 web.config 并注释掉

 <add name="UrlRoutingModule-4.0"
 type="System.Web.Routing.UrlRoutingModule" preCondition="" path="*."
 verb="*" />

错误消失了,我得到了 200 的响应,但没有从 API 返回数据,这让我认为它实际上不知道如何处理请求?我已经用谷歌搜索了很多,但无法找到底部或这个;只是想知道是否有人对这可能是什么有任何建议?

正如我所说,在独立模式下,相同的代码/配置工作正常——只有当它嵌套在另一个应用程序中时,它才导致问题,导致我认为这是一个配置继承类型问题。

谢谢

为什么需要将 WebApi 作为虚拟应用程序?

IIS 中将其隔离为自己的站点更有意义。

最新更新