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

时间:2022-05-22 04:05:35

I have a web application being developped on Windows 8.1, .net 4.5.1, IIS 8.5 (under Integrated AppPool), Visual Studio 2013 Over the default template that includes asp.net Identity, Owin, etc. and locally works fine.

我有一个web应用程序在Windows 8.1、。net 4.5.1、IIS 8.5(集成AppPool)中开发,Visual Studio 2013在默认模板上,包括asp.net Identity、Owin等,以及本地工作。

Then I uploaded it to a windows server 2008 & IIS 7.5 (Integrated Pipeline) Host and I get:

然后我将它上传到windows server 2008和IIS 7.5(集成管道)主机上,得到:

This operation requires IIS integrated pipeline mode.

该操作需要IIS集成管道模式。

Exception Details: System.PlatformNotSupportedException: This operation requires IIS integrated pipeline mode.

异常详细信息:系统。PlatformNotSupportedException:此操作需要IIS集成管道模式。

Stack Trace:

堆栈跟踪:

[PlatformNotSupportedException: This operation requires IIS integrated pipeline mode.] 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 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

[PlatformNotSupportedException:此操作需要IIS集成管道模式。] system . web . httpresponse . get_header . get_header () +9687046 System.Web.HttpResponseWrapper.get_Headers() +9 Microsoft.Owin.Host.SystemWeb.OwinCallContext.CreateEnvironment() +309 microsoft.owin . host . system . web . integratedweb . integratedinsystem.com。GetInitialEnvironment(HttpApplication应用程序)+ 246 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext。PrepareInitialContext(HttpApplication应用程序)+ 15 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage。BeginEvent(Object sender、EventArgs e、AsyncCallback cb、Object extradata) +265 system . web . asynceventexecutionp.system . system . httpapplication . iexecutionstep.execute () +285 System.Web.HttpApplication。ExecuteStep(IExecutionStep, booleanand completedsynchronous) +155

I have searched a lot and unable to find anything except for directing the reader to change the pipeline from classic mode to integrated mode that which I already did with no luck..

我搜索了很多,除了指导读者将管道从经典模式切换到集成模式之外,我找不到任何东西。

What can I do to fix the problem? Does "Microsoft.Owin.Host.SystemWeb" not like IIS 7.5, or server 2008 or me :) ?

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

9 个解决方案

#1


42  

Your Application Pool is in classic mode but your Application need integrated mode to fire. change it to Integrated Mode:

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

  1. Open IIS Manager

    打开IIS管理器

  2. Application Pool

    应用程序池

  3. Select pool that your app are run in it

    选择应用程序运行的池

  4. In right panel select Basic Setting

    在右面板中选择基本设置

  5. Manage Pipeline Mode change to Integrated

    管理管道模式更改为集成

#2


41  

For anyone arriving here from searching for this error, try using Response.AddHeader instead of Response.Headers.Add()

对于任何搜索到此错误的人,请尝试使用Response。AddHeader代替Response.Headers.Add()

#3


31  

I was having the same issue and I solved doing the following:

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

  1. Go to visual studio Project properties.

    进入visual studio项目属性。

  2. Select Web Tab.

    选择Web选项卡。

  3. Select Use Local IIS Web server

    选择使用本地IIS Web服务器。

  4. Check Use IIS Express

    检查使用IIS表达

#4


6  

All these answers didn't work for me.

所有这些答案对我都不起作用。

Issue Details: I was getting the same error as mentioned in the question when I was trying to deploy my application (developed using visual studio and deployed using the folder structure created by the publish option) to a remote server.

问题细节:当我试图将我的应用程序(使用visual studio开发并使用发布选项创建的文件夹结构部署)部署到远程服务器时,我得到了与问题中提到的相同的错误。

This issue persisted after trying the above solutions. This error means the application pool to which your deployed application belongs is not in Integrated mode.

在尝试了上述解决方案之后,这个问题一直存在。此错误意味着部署的应用程序所属的应用程序池不在集成模式中。

Solution:

解决方案:

  1. Create a new application pool with .NET 4 version selected, and Managed Pipeline mode as Integrated.
  2. 使用所选的. net 4版本创建一个新的应用程序池,并集成托管管道模式。
  3. Change your application's app pool to the above created one and try now.
  4. 将应用程序的应用程序池更改为上面创建的应用程序池,然后现在尝试。

It works!

它的工作原理!

#5


5  

My bad!, you are right Lex I must have done that instead of stating that I have solved the problem in comments..

我的坏!你说的对,莱科斯,我一定是那样做的,而不是在评论中说我已经解决了问题。

This was a strange problem since my hosts IIS shouldn't complain that it requires integrated pipeline mode when it already is in that mode as I stated in my question as :

这是一个奇怪的问题,因为我的主机IIS不应该抱怨它需要集成管道模式,当它已经处于这种模式时,就像我在问题中提到的:

I have searched a lot and unable to find anything except for directing the reader to change the pipeline from classic mode to integrated mode that which I already did with no luck..

我搜索了很多,除了指导读者将管道从经典模式切换到集成模式之外,我找不到任何东西。

Using the Levi's directives I put <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %> and <%: System.Web.Hosting.HttpRuntime.IISVersion %> on an empty aspx page and told my host what going on and asked them to fix the problem and confirm the problem using the page I uploaded... I checked very often if something has changed at the state of the page and I can see that they struggled 3-4 hours to solve it...

使用Levi's指令,我将<%:system . web . host:httpruntime。使用集成的管道%>和<%:system . web . host . httpruntime。IISVersion %>在一个空的aspx页面上,告诉我的主机发生了什么,并要求他们修复问题并使用我上传的页面确认问题……我经常检查页面状态是否发生了变化,我发现他们花了3-4个小时来解决这个问题……

When I asked what they have done to solve the problem, their asnwer was kind of 'classified', since they said:

当我问他们为解决这个问题做了什么时,他们的回答有点“机密”,因为他们说:

Our team made the required changes on the server

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

I smiled and passed. So the problem was all with my host. Thanks for all the answers.

我笑着过去了。所以问题出在我的主人身上。谢谢你的回答。

Update: As Ben stated in the comments

更新:如Ben在评论中所说

  1. <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %> and
  2. < %:System.Web.Hosting.HttpRuntime。UsingIntegratedPipeline % >和
  3. <%: System.Web.Hosting.HttpRuntime.IISVersion %>
  4. < %:System.Web.Hosting.HttpRuntime。IISVersion % >

are no longer valid and they are now:

不再有效,他们现在:

  1. <%: System.Web.HttpRuntime.UsingIntegratedPipeline %> and
  2. < %:System.Web.HttpRuntime。UsingIntegratedPipeline % >和
  3. <%: System.Web.HttpRuntime.IISVersion %>
  4. < %:System.Web.HttpRuntime。IISVersion % >

#6


4  

The way to fix this issue is not within IIS. I was trying to run my application within IIS Express within Visual Studio. I searched the web and some articles were saying to add an identity tag to the system.web tag. This is not the correct way.

解决这个问题的方法不在IIS中。我试图在Visual Studio中运行IIS Express中的应用程序。我在网上搜索,一些文章说要给系统添加一个身份标签。web标记。这不是正确的方法。

The way I was able to solve this issue was to click on the project file and go to properties. Under managed pipeline, I changed the property value from classic to integrated.

我解决这个问题的方法是单击项目文件并进入属性。在托管管道下,我将属性值从classic更改为integrated。

This solved my issue.

这解决了我的问题。

#7


4  

I resolved this problem by following steps:

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

  1. Right click on root folder of project.
  2. 右键单击项目的根文件夹。
  3. Goto properties
  4. 转到属性
  5. Click web in left menu
  6. 单击左侧菜单中的web
  7. change current port http://localhost:####/
  8. 改变当前端口http://localhost:# # # # /
  9. click create virtual directory
  10. 点击创建虚拟目录
  11. Save the changes (ctrl+s)
  12. 保存更改(ctrl + s)
  13. Run
  14. 运行

may be it help you to.

也许这对你有帮助。

#8


4  

For Visual Studio 2012 while debugging that error accrued

对于Visual Studio 2012,当调试错误发生时

Website Menu -> Use ISS Express did it for me

网站菜单->使用国际空间站快递为我做的

#9


3  

Those who are using VS2012

使用VS2012的用户

Goto project > Properties > Web

Goto项目>属性> Web

Check Use Local IIS Web server

检查使用本地IIS Web服务器

Check Use IIS Express

检查使用IIS表达

Project Url http://localhost:PORT/

项目的Url http://localhost

#1


42  

Your Application Pool is in classic mode but your Application need integrated mode to fire. change it to Integrated Mode:

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

  1. Open IIS Manager

    打开IIS管理器

  2. Application Pool

    应用程序池

  3. Select pool that your app are run in it

    选择应用程序运行的池

  4. In right panel select Basic Setting

    在右面板中选择基本设置

  5. Manage Pipeline Mode change to Integrated

    管理管道模式更改为集成

#2


41  

For anyone arriving here from searching for this error, try using Response.AddHeader instead of Response.Headers.Add()

对于任何搜索到此错误的人,请尝试使用Response。AddHeader代替Response.Headers.Add()

#3


31  

I was having the same issue and I solved doing the following:

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

  1. Go to visual studio Project properties.

    进入visual studio项目属性。

  2. Select Web Tab.

    选择Web选项卡。

  3. Select Use Local IIS Web server

    选择使用本地IIS Web服务器。

  4. Check Use IIS Express

    检查使用IIS表达

#4


6  

All these answers didn't work for me.

所有这些答案对我都不起作用。

Issue Details: I was getting the same error as mentioned in the question when I was trying to deploy my application (developed using visual studio and deployed using the folder structure created by the publish option) to a remote server.

问题细节:当我试图将我的应用程序(使用visual studio开发并使用发布选项创建的文件夹结构部署)部署到远程服务器时,我得到了与问题中提到的相同的错误。

This issue persisted after trying the above solutions. This error means the application pool to which your deployed application belongs is not in Integrated mode.

在尝试了上述解决方案之后,这个问题一直存在。此错误意味着部署的应用程序所属的应用程序池不在集成模式中。

Solution:

解决方案:

  1. Create a new application pool with .NET 4 version selected, and Managed Pipeline mode as Integrated.
  2. 使用所选的. net 4版本创建一个新的应用程序池,并集成托管管道模式。
  3. Change your application's app pool to the above created one and try now.
  4. 将应用程序的应用程序池更改为上面创建的应用程序池,然后现在尝试。

It works!

它的工作原理!

#5


5  

My bad!, you are right Lex I must have done that instead of stating that I have solved the problem in comments..

我的坏!你说的对,莱科斯,我一定是那样做的,而不是在评论中说我已经解决了问题。

This was a strange problem since my hosts IIS shouldn't complain that it requires integrated pipeline mode when it already is in that mode as I stated in my question as :

这是一个奇怪的问题,因为我的主机IIS不应该抱怨它需要集成管道模式,当它已经处于这种模式时,就像我在问题中提到的:

I have searched a lot and unable to find anything except for directing the reader to change the pipeline from classic mode to integrated mode that which I already did with no luck..

我搜索了很多,除了指导读者将管道从经典模式切换到集成模式之外,我找不到任何东西。

Using the Levi's directives I put <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %> and <%: System.Web.Hosting.HttpRuntime.IISVersion %> on an empty aspx page and told my host what going on and asked them to fix the problem and confirm the problem using the page I uploaded... I checked very often if something has changed at the state of the page and I can see that they struggled 3-4 hours to solve it...

使用Levi's指令,我将<%:system . web . host:httpruntime。使用集成的管道%>和<%:system . web . host . httpruntime。IISVersion %>在一个空的aspx页面上,告诉我的主机发生了什么,并要求他们修复问题并使用我上传的页面确认问题……我经常检查页面状态是否发生了变化,我发现他们花了3-4个小时来解决这个问题……

When I asked what they have done to solve the problem, their asnwer was kind of 'classified', since they said:

当我问他们为解决这个问题做了什么时,他们的回答有点“机密”,因为他们说:

Our team made the required changes on the server

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

I smiled and passed. So the problem was all with my host. Thanks for all the answers.

我笑着过去了。所以问题出在我的主人身上。谢谢你的回答。

Update: As Ben stated in the comments

更新:如Ben在评论中所说

  1. <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %> and
  2. < %:System.Web.Hosting.HttpRuntime。UsingIntegratedPipeline % >和
  3. <%: System.Web.Hosting.HttpRuntime.IISVersion %>
  4. < %:System.Web.Hosting.HttpRuntime。IISVersion % >

are no longer valid and they are now:

不再有效,他们现在:

  1. <%: System.Web.HttpRuntime.UsingIntegratedPipeline %> and
  2. < %:System.Web.HttpRuntime。UsingIntegratedPipeline % >和
  3. <%: System.Web.HttpRuntime.IISVersion %>
  4. < %:System.Web.HttpRuntime。IISVersion % >

#6


4  

The way to fix this issue is not within IIS. I was trying to run my application within IIS Express within Visual Studio. I searched the web and some articles were saying to add an identity tag to the system.web tag. This is not the correct way.

解决这个问题的方法不在IIS中。我试图在Visual Studio中运行IIS Express中的应用程序。我在网上搜索,一些文章说要给系统添加一个身份标签。web标记。这不是正确的方法。

The way I was able to solve this issue was to click on the project file and go to properties. Under managed pipeline, I changed the property value from classic to integrated.

我解决这个问题的方法是单击项目文件并进入属性。在托管管道下,我将属性值从classic更改为integrated。

This solved my issue.

这解决了我的问题。

#7


4  

I resolved this problem by following steps:

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

  1. Right click on root folder of project.
  2. 右键单击项目的根文件夹。
  3. Goto properties
  4. 转到属性
  5. Click web in left menu
  6. 单击左侧菜单中的web
  7. change current port http://localhost:####/
  8. 改变当前端口http://localhost:# # # # /
  9. click create virtual directory
  10. 点击创建虚拟目录
  11. Save the changes (ctrl+s)
  12. 保存更改(ctrl + s)
  13. Run
  14. 运行

may be it help you to.

也许这对你有帮助。

#8


4  

For Visual Studio 2012 while debugging that error accrued

对于Visual Studio 2012,当调试错误发生时

Website Menu -> Use ISS Express did it for me

网站菜单->使用国际空间站快递为我做的

#9


3  

Those who are using VS2012

使用VS2012的用户

Goto project > Properties > Web

Goto项目>属性> Web

Check Use Local IIS Web server

检查使用本地IIS Web服务器

Check Use IIS Express

检查使用IIS表达

Project Url http://localhost:PORT/

项目的Url http://localhost