我在Windows 8.1,.net 4.5.1,IIS 8.5(在集成AppPool下),Visual Studio 2013上开发了一个Web应用程序,在默认模板上包含asp.net Identity,Owin等,本地工作正常
然后我将它上传到Windows Server 2008& IIS 7.5(集成管道)主机,我得到:
此操作需要IIS集成管道模式。
异常详情: System.PlatformNotSupportedException:This 操作需要IIS集成管道模式。
堆栈跟踪:
[PlatformNotSupportedException:此操作需要IIS 综合管道模式。] System.Web.HttpResponse.get_Headers()+ 9687046 System.Web.HttpResponseWrapper.get_Headers()+ 9 Microsoft.Owin.Host.SystemWeb.OwinCallContext.CreateEnvironment()+309 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.GetInitialEnvironment(HttpApplication的 申请)+246 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.PrepareInitialContext(HttpApplication的 申请)+15 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.BeginEvent(对象 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
我搜索了很多,除了指示读者将管道从经典模式更改为集成模式之外无法找到任何内容,而我已经没有运气了。
我该怎么做才能解决问题? “Microsoft.Owin.Host.SystemWeb”不是像IIS 7.5,还是服务器2008或我:)?
答案 0 :(得分:49)
您的应用程序池处于经典模式,但您的应用程序需要集成模式才能触发。将其更改为集成模式:
打开IIS管理器
应用程序池
选择您的应用在其中运行的池
在右侧面板中选择基本设置
管理管道模式更改为集成
答案 1 :(得分:48)
对于从此处搜索此错误的任何人,请尝试使用Response.AddHeader
代替Response.Headers.Add()
答案 2 :(得分:33)
我遇到了同样的问题,我解决了以下问题:
转到visual studio Project properties
。
选择Web
标签。
选择Use Local IIS Web server
检查Use IIS Express
答案 3 :(得分:6)
所有这些答案对我都没有用。
问题详情: 当我尝试将我的应用程序(使用visual studio开发并使用由publish选项创建的文件夹结构部署)部署到远程服务器时,我得到了与问题中提到的相同的错误。
尝试上述解决方案后,此问题仍然存在。此错误表示已部署的应用程序所属的应用程序池未处于集成模式。
<强>解决方案:强>
有效!
答案 4 :(得分:5)
我的坏!,你是对的Lex我必须这样做,而不是说我已经在评论中解决了这个问题。
这是一个奇怪的问题,因为我的主机IIS不应该抱怨当它已经处于该模式时它需要集成管道模式,正如我在我的问题中所述:
我已经搜索了很多,除了指示读者将管道从经典模式更改为集成模式我已经没有运气时,无法找到任何内容。
使用Levi's指令,我将 和<%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
放在一个空的aspx页面上,并告诉我的主机发生了什么并要求他们解决问题,并使用我上传的页面确认问题...我经常检查页面状态是否有变化,我可以看到他们努力解决了3-4个小时...... <%: System.Web.Hosting.HttpRuntime.IISVersion %>
当我问他们为解决问题所做的工作时,他们的asnwer有点被分类了,因为他们说:
我笑了笑,过去了。所以问题出在我的主人身上。谢谢你的所有答案。我们的团队在服务器上进行了必要的更改
更新:评论中所述的Ben
<%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
和- 醇>
<%: System.Web.Hosting.HttpRuntime.IISVersion %>
不再有效,现在是:
答案 5 :(得分:5)
我通过以下步骤解决了这个问题:
可能对你有帮助。
答案 6 :(得分:4)
解决此问题的方法不在IIS中。我试图在Visual Studio中的IIS Express中运行我的应用程序。我搜索了网络,一些文章说要在system.web标签上添加一个标识标签。这不是正确的方法。
我能够解决此问题的方法是单击项目文件并转到属性。 在托管管道下,我将属性值从经典更改为集成。
这解决了我的问题。
答案 7 :(得分:4)
对于 Visual Studio 2012 ,而调试则产生错误
网站菜单 - &gt;使用IIS Express 为我做了
答案 8 :(得分:3)
答案 9 :(得分:1)
GitHub解决方案通过添加
为我解决了问题答案 10 :(得分:0)