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

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

我有一个在本地计算机上独立运行的 Asp.net WebAPI 2 (.net 4.5) 站点,我现在想将其作为虚拟应用程序“嵌入”到 Web 表单 (.net 4.0) 应用程序中。

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

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

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

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

Exception message: System.Web.Routing.UrlRoutingModule does not implement IHttpHandlerFactory or IHttpHandler.

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

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

错误消失了,我收到了 200 响应,但没有从 API 返回数据,这让我觉得它实际上不知道如何处理请求? 我在谷歌上搜索了很多,但无法深入了解这个;只是想知道是否有人对这可能是什么有任何建议?

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

谢谢

最佳答案

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

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

关于c# - 处理程序映射的嵌套 WebAPI 问题(继承问题?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27618392/

相关文章:

c# - 如何使用 .NET C# 在登录屏幕中隐藏用户?

c# - 事件和事件日志之间有什么区别?

c# - 临时存储一个 Delegate 以供以后调用

asp.net - 在标记中将复杂对象分配给用户控件

c# - WPF 新增功能 - 更新代码中的 TextBlock 导致 NullReferenceException

javascript - Facebook 分享按钮似乎无法在使用 Javascript 和 Ajax 的 Webmethod 中工作

asp.net - 欺骗 IsPostBack

c# - 从批处理语句中获取异常详细信息

c# - azure : I don't see all my Trace log

c# - 从多个位置创建脚本包