【问题标题】:OWIN/Katana selfhost generic handler (ashx) not invoked未调用 OWIN/Katana selfhost 通用处理程序 (ashx)
【发布时间】:2016-02-02 22:02:31
【问题描述】:

我正在尝试将 OWIN/Katana 自托管控制台应用程序与我的通用 ASHX 处理程序一起使用,但无法使其正常工作。甚至支持吗?我在 app.config 中注册了它,路径为 MyHandler.axd,就像我为 ASP.NET 应用程序所做的那样(以及它与此等效设置一起工作的地方):

 <system.webServer>
    <handlers>
        <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
        <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
        <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
        <add name="MyHandler" path="MyHandler.axd" verb="*" type="My.AssemblyName.Handlers.MyAsyncHandler, My.AssemblyName, Culture=neutral" />
    </handlers>
</system.webServer>

处理程序实现(未被调用):

 namespace My.AssemblyName.Handlers
 {
     public class MyAsyncHandler : HttpTaskAsyncHandler
     {
        public override async Task ProcessRequestAsync(HttpContext context)
        {
            // code that is not hit
        }
    }
}

我的Startup 类是这样实现的:

public class Startup
{
    public void Configuration(IAppBuilder appBuilder)
    {
        HttpConfiguration config = new HttpConfiguration();
        config.Routes.IgnoreRoute("MyHandler.axd", "{resource}.axd/{*pathInfo}");
        config.Routes.IgnoreRoute("MyHandler.ashx", "{resource}.ashx/{*pathInfo}");
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new {id = RouteParameter.Optional}
            );

        appBuilder.UseWebApi(config);
    }
}

应用程序被调用

using (WebApp.Start<Startup>(url: baseAddress))
{
    Console.ReadLine();
}

这些是我安装的 NuGet 包:

  • Microsoft.AspNet.WebApi.Client
  • Microsoft.AspNet.WebApi.Core
  • Microsoft.AspNet.WebApi.Owin
  • Microsoft.AspNet.WebApi.OwinSelfHost
  • Microsoft.Owin
  • Microsoft.Owin.Host.HttpListener
  • Microsoft.Owin.Host.SystemWeb Microsoft.Owin.Hosting
  • 还要注意我的处理程序是 HttpTaskAsyncHandler,所以我也引用了System.Web.dll

编辑:我看到为 ASP.NET 主机 (Microsoft.Owin.Host.SystemWeb) 配置了处理程序 here with Nancy。这怎么可能?

【问题讨论】:

    标签: asp.net asp.net-web-api owin katana


    【解决方案1】:

    不,不支持在 Katana selfhost 中运行任何 System.Web 组件。 Katana selfhost 仅支持 WebApi、SignalR 和其他 OWIN 兼容框架。

    【讨论】:

    • 是的,我是这么想的。它实际上是一个 IIS 的东西。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-01-08
    • 2013-03-16
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 2015-01-10
    • 2011-11-16
    • 1970-01-01
    相关资源
    最近更新 更多