“这个操作需要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()
您的应用程序池处于经典模式,但您的应用程序需要集成模式才能触发。 将其更改为集成模式:
-
打开IISpipe理器
-
应用程序池
-
select您的应用在其中运行的池
-
在右侧面板中select基本设置
-
pipe理pipe道模式更改为集成
我遇到了同样的问题,我解决了以下问题:
-
转到Visual Studio
Project properties
。 -
select
Web
选项卡。 -
select
Use Local IIS Web server
-
检查
Use IIS Express
所有这些答案都不适合我。
问题详细信息:当我试图将我的应用程序(使用Visual Studio开发,并使用发布选项创build的文件夹结构进行部署)部署到远程服务器时,我遇到了同样的错误。
尝试上述解决scheme后,此问题仍然存在。 此错误意味着您部署的应用程序所属的应用程序池不处于集成模式。
解:
- 创build一个select了.NET 4版本的新应用程序池,并将Managed Pipeline模式设置为Integrated 。
- 将应用程序的应用程序池更改为上面创build的应用程序池,然后立即尝试
有用!
解决此问题的方法不在IIS中。 我试图在Visual Studio中的IIS Express中运行我的应用程序。 我search了networking,一些文章说要添加身份标签到system.web标签。 这不是正确的方法。
我能够解决这个问题的方法是点击项目文件并转到属性。 在托pipepipe道下,我将属性值从经典更改为集成。
这解决了我的问题。
我通过以下步骤解决了这个问题:
- 右键单击项目的根文件夹。
- 转到属性
- 点击左侧菜单中的网页
- 改变当前端口http:// localhost:#### /
- 点击创build虚拟目录
- 保存更改(ctrl + s)
- 跑
可能会帮助你。
对于Visual Studio 2012,同时debugging错误的累积
网站菜单 – >使用ISS Express为我做了
我的坏!你是对的Lex我必须这样做,而不是说我已经解决了问题的评论..
这是一个奇怪的问题,因为我的主机IIS不应该抱怨,当它已经处于该模式时,它需要集成pipe道模式,正如我在我的问题中所述:
我search了很多,找不到任何东西,除了指导读者将pipe道从经典模式更改为集成模式, 我已经没有运气了 。
使用Levi的指令,我把和<%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
放在一个空的aspx页面上,告诉我的主机正在发生什么事情,并询问他们解决问题,并确认使用我上传的页面的问题…我经常检查,如果在页面的状态发生了什么变化,我可以看到他们挣扎3-4小时解决它… <%: System.Web.Hosting.HttpRuntime.IISVersion %>
当我问他们为解决这个问题所做的工作时,他们的问题是“分类”的,因为他们说:
我们的团队在服务器上进行了必要的更改
我笑了,通过了。 所以问题是我的主人。 感谢所有的答案。
更新:正如本评论所述
<%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
和<%: System.Web.Hosting.HttpRuntime.IISVersion %>
不再有效,他们现在是:
<%: System.Web.HttpRuntime.UsingIntegratedPipeline %>
和<%: System.Web.HttpRuntime.IISVersion %>
那些正在使用VS2012
转到项目>属性>网页
选中使用本地IIS Web服务器
检查使用IIS Express
项目Url http:// localhost:PORT /