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

LDJ*_*LDJ 7 .net c# asp.net httphandler asp.net-web-api

我有一个Asp.net WebAPI 2(.net 4.5)站点在我的本地机器上独立工作,我现在想要在Web表单(.net 4.0)应用程序中"嵌入"虚拟应用程序.

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

我通过将它包装在location元素中来阻止继承system.web

<location path="." inheritInChildApplications="false">
Run Code Online (Sandbox Code Playgroud)

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

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

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

 <add name="UrlRoutingModule-4.0"
 type="System.Web.Routing.UrlRoutingModule" preCondition="" path="*."
 verb="*" />
Run Code Online (Sandbox Code Playgroud)

错误消失了,我得到了200响应,但没有来自API的数据,这让我觉得它实际上不知道如何处理请求?我已经google了很多,无法到达底部或者这个; 只是想知道是否有人对这可能是什么有任何建议?

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

谢谢

小智 -2

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

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