错误
此操作要求IISVersion7.5或更高版本在集成管道模式下运行。
每当我试图访问我的WebApi页面时,都会出现这种情况。[HttpPost]修饰的方法永远不会被击中。我知道卡西尼不允许集成模式。但是,我使用的代码非常类似于我们代码库中的其他项目,这些项目也使用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>所有这些代码都存在于其他项目中,并以is..so的形式工作,我完全不知道这里的问题是什么。此问题仅发生在Cassini中(IIS Express运行代码良好)。其他项目正在使用卡西尼号,没有这个错误。
发布于 2015-02-09 21:32:13
我更新了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
问题就消失了。
https://stackoverflow.com/questions/28417486
复制相似问题