Общий обработчик OWIN/Katana selfhost (ashx) не вызывается

Я пытаюсь использовать автономное консольное приложение 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
  • Также обратите внимание, что мой обработчик — HttpTaskAsyncHandler, поэтому я также ссылаюсь на System.Web.dll

EDIT: я вижу, что обработчики настроены здесь с Нэнси для узла ASP.NET (Microsoft.Owin.Host.SystemWeb). Как это возможно?


person the berserker    schedule 02.11.2015    source источник


Ответы (1)


Нет, запуск каких-либо компонентов System.Web на собственном хосте Katana не поддерживается. Автономный хост Katana поддерживает только WebApi, SignalR и другие совместимые с OWIN платформы.

person Tratcher    schedule 02.11.2015
comment
да, так и думал. На самом деле это действительно IIS. Спасибо! - person the berserker; 03.11.2015