2015-02-09 50 views
0

錯誤關於集成的管線模式卡西尼錯誤

此操作需要IIS版本7.5或更高版本運行在 集成的管線模式。

隨時嘗試訪問我的WebApi頁面時會出現。裝飾的方法從未被擊中。我知道卡西尼不允許集成模式。但是,我使用的代碼與使用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> 

所有這個代碼存在於其他項目中,因爲它是..所以我在這裏的問題是完全損失。該問題僅發生在卡西尼(IIS Express運行代碼的罰款)。其他項目正在使用卡西尼沒有這個錯誤。

回答

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

和問題走了。