首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于集成管道模式的Cassini错误

关于集成管道模式的Cassini错误
EN

Stack Overflow用户
提问于 2015-02-09 19:14:01
回答 1查看 279关注 0票数 0

错误

此操作要求IISVersion7.5或更高版本在集成管道模式下运行。

每当我试图访问我的WebApi页面时,都会出现这种情况。[HttpPost]修饰的方法永远不会被击中。我知道卡西尼不允许集成模式。但是,我使用的代码非常类似于我们代码库中的其他项目,这些项目也使用Cassini,而我们没有得到这个错误。

我不知道我在使用什么,这需要集成管道模式。我猜是global.asax中的一些东西导致了这个问题。我在用SimpleInjector。

我把我的global.asax概括成这样:

代码语言:javascript
复制
    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);
        }
}

我的财务主任:

代码语言:javascript
复制
public class GenericController : ApiController
{
    [HttpPost]
    public HttpResponseMessage Get( /*PocoObjectName item*/)
    {
        throw new NotImplementedException();
     }
}

web.config包含以下相关部分:

代码语言:javascript
复制
  <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运行代码良好)。其他项目正在使用卡西尼号,没有这个错误。

EN

回答 1

Stack Overflow用户

发布于 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

问题就消失了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28417486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档