0
我正在嘗試使用OWIN/Katana selfhosted控制檯應用程序與我的通用ASHX處理程序,但只是無法讓它工作。這甚至支持嗎?我有它在的app.config登記路徑MyHandler.axd
因爲我願意爲ASP.NET應用程序做(並在那裏與此相當的安裝方法的效果):OWIN/Katana selfhost通用處理程序(ashx)未調用
<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
- 微軟.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。那可能怎麼樣?
是的,這麼想。這實際上是一個IIS的東西。謝謝! –