2015-02-09 5 views
0

ОшибкаКассини ошибка относительно интегрированного режима трубопровода

Эта операция требует IIS версии 7.5 или выше, работает в интегрированном режиме конвейера.

Это происходит в любое время, когда я пытаюсь получить доступ к моей странице WebApi. Удовлетворенный метод [HttpPost] никогда не попадает. Я понимаю, что Cassini не разрешает интегрированный режим. Тем не менее, я использую код, который очень похож на другие проекты в нашей базе кода, которые также используют Cassini, и мы не получаем эту ошибку.

Я не знаю, что я использую, что требует интегрированного режима трубопровода. Моя догадка - это что-то в global.asax вызывает проблему. Я использую SimpleInjector.

Я вареные мои global.asax к этому:

public class WebApiApplication : SimpleInjectorApiApplication<GenericExceptionPolicy> 
    { 
     protected override Assembly GetVersionAssembly() 
     { 
      return Assembly.GetExecutingAssembly(); 
     } 

     protected override void RegisterServices() 
     { 
      base.RegisterServices(); 

      Container.Register<IEntityCache, EntityCache>(); 
      Container.Register<ICacheProvider, HttpCacheProvider>(); 

      Container.Verify(); 
     } 

     protected override void OnApplicationStarted() 
     { 
      base.OnApplicationStarted();   
      WebApiConfig.Register(RouteTable.Routes); 
     } 
} 

Мой контроллер:

public class GenericController : ApiController 
{ 
    [HttpPost] 
    public HttpResponseMessage Get(/*PocoObjectName item*/) 
    { 
     throw new NotImplementedException(); 
    } 
} 

И web.config содержит эту соответствующую часть:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers> 
    </system.webServer> 

Все этот код существует в других проектах и ​​работает так, как есть. Так что у меня полная потеря, для чего проблема здесь. Проблема возникает только в Cassini (IIS Express отлично работает с кодом). Другие проекты используют Cassini без этой ошибки.

ответ

2

Я обновил Microsoft.AspNet.WebApi.WebHost. В менеджере пакетов консоли NuGet Я пошел от:

Install-Package Microsoft.AspNet.WebApi.WebHost -Version 5.1.0.0

в

Install-Package Microsoft.AspNet.WebApi.WebHost -Version 5.1.2.0

И проблема ушла.