“这个操作需要IIS集成pipe道模式。”

我有一个Web应用程序正在开发的Windows 8.1,.NET 4.5.1,IIS 8.5(集成AppPool下),Visual Studio 2013的默认模板,包括asp.net身份,欧文等,本地工作正常。

然后我上传到Windows Server 2008和IIS 7.5(集成pipe道)主机,我得到:

此操作需要IIS集成pipe道模式。

exception详细信息: System.PlatformNotSupportedException:此操作需要IIS集成pipe道模式。

堆栈跟踪:

[PlatformNotSupportedException:此操作需要IIS集成pipe道模式。] System.Web.HttpResponse.get_Headers()+9687046 System.Web.HttpResponseWrapper.get_Headers()+9 Microsoft.Owin.Host.SystemWeb.OwinCallContext.CreateEnvironment()+309 Microsoft .Owin.Host.SystemWeb.IntegratedPipeline.InteratedPipelineContext.GetInitialEnvironment(HttpApplication application)+246 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.PrepareInitialContext(HttpApplication application)+15 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.BeginEvent (Object sender,EventArgs e,AsyncCallback cb,Object extradata)+265 System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+285 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&completedSynchronously)+155

我search了很多,找不到任何东西,除了指导读者将pipe道从经典模式更改为集成模式,我已经没有运气了。

我能做些什么来解决这个问题? “Microsoft.Owin.Host.SystemWeb”是不是像IIS 7.5,或服务器2008或我:)?

对于任何人到这里来search这个错误,请尝试使用Response.AddHeader而不是Response.Headers.Add()

您的应用程序池处于经典模式,但您的应用程序需要集成模式才能触发。 将其更改为集成模式:

  1. 打开IISpipe理器

  2. 应用程序池

  3. select您的应用在其中运行的池

  4. 在右侧面板中select基本设置

  5. pipe理pipe道模式更改为集成

我遇到了同样的问题,我解决了以下问题:

  1. 转到Visual Studio Project properties

  2. selectWeb选项卡。

  3. selectUse Local IIS Web server

  4. 检查Use IIS Express

所有这些答案都不适合我。

问题详细信息:当我试图将我的应用程序(使用Visual Studio开发,并使用发布选项创build的文件夹结构进行部署)部署到远程服务器时,我遇到了同样的错误。

尝试上述解决scheme后,此问题仍然存在。 此错误意味着您部署的应用程序所属的应用程序池不处于集成模式。

解:

  1. 创build一个select了.NET 4版本的新应用程序池,并将Managed Pipeline模式设置为Integrated
  2. 将应用程序的应用程序池更改为上面创build的应用程序池,然后立即尝试

有用!

解决此问题的方法不在IIS中。 我试图在Visual Studio中的IIS Express中运行我的应用程序。 我search了networking,一些文章说要添加身份标签到system.web标签。 这不是正确的方法。

我能够解决这个问题的方法是点击项目文件并转到属性。 在托pipepipe道下,我将属性值从经典更改为集成。

这解决了我的问题。

我通过以下步骤解决了这个问题:

  1. 右键单击项目的根文件夹。
  2. 转到属性
  3. 点击左侧菜单中的网页
  4. 改变当前端口http:// localhost:#### /
  5. 点击创build虚拟目录
  6. 保存更改(ctrl + s)

可能会帮助你。

对于Visual Studio 2012,同时debugging错误的累积

网站菜单 – >使用ISS Express为我做了

我的坏!你是对的Lex我必须这样做,而不是说我已经解决了问题的评论..

这是一个奇怪的问题,因为我的主机IIS不应该抱怨,当它已经处于该模式时,它需要集成pipe道模式,正如我在我的问题中所述:

我search了很多,找不到任何东西,除了指导读者将pipe道从经典模式更改为集成模式, 我已经没有运气了

使用Levi的指令,我把<%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %><%: System.Web.Hosting.HttpRuntime.IISVersion %>放在一个空的aspx页面上,告诉我的主机正在发生什么事情,并询问他们解决问题,并确认使用我上传的页面的问题…我经常检查,如果在页面的状态发生了什么变化,我可以看到他们挣扎3-4小时解决它…

当我问他们为解决这个问题所做的工作时,他们的问题是“分类”的,因为他们说:

我们的团队在服务器上进行了必要的更改

我笑了,通过了。 所以问题是我的主人。 感谢所有的答案。

更新:正如本评论所述

  1. <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
  2. <%: System.Web.Hosting.HttpRuntime.IISVersion %>

不再有效,他们现在是:

  1. <%: System.Web.HttpRuntime.UsingIntegratedPipeline %>
  2. <%: System.Web.HttpRuntime.IISVersion %>

那些正在使用VS2012

转到项目>属性>网页

选中使用本地IIS Web服务器

检查使用IIS Express

项目Url http:// localhost:PORT /