web-dev-qa-db-ja.com

「この操作にはIIS統合パイプラインモードが必要です。」

Windows 8.1、.NET 4.5.1、IIS 8.5(Integrated AppPoolの下)、ASP.NET Identity、Owinなどを含むデフォルトテンプレート上のVisual Studio 2013で開発されているWebアプリケーションがあります。ローカルでは正常に動作します。

次に、IIS 7.5(Integrated Pipeline)Hostを使用してWindows Server 2008にアップロードし、以下を取得します。

この操作にはIIS統合パイプラインモードが必要です。

例外の詳細:
System.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

読者にパイプラインをクラシックモードから統合モードに変更するように指示する以外には何も見つかりません。既に成功していません。

問題を解決するにはどうすればよいですか? 「Microsoft.Owin.Host.SystemWeb」はIIS 7.5などとは異なりますか?

53
wooer

アプリケーションプールはクラシックモードですが、起動するには統合モードが必要です。統合モードに変更します。

  1. IIS Managerを開きます

  2. アプリケーションプール

  3. アプリが実行されるプールを選択します

  4. 右側のパネルで「基本設定」を選択します

  5. 統合されたパイプラインモードの変更を管理する

51
Mohammadreza

Response.Headers.Add()の代わりにResponse.AddHeaderを使用してみてください

48
billpg

私は同じ問題を抱えていましたが、次のようにして解決しました:

  1. Visual Studioで、[プロジェクトプロパティ]を選択します。

  2. 「Web」タブを選択します。

  3. [ローカルIIS Webサーバーを使用]を選択します。

  4. 「IIS Expressを使用」をチェックします

32
kakon

このエラーは、デプロイされたアプリケーションが属するアプリケーションプールが統合モードではないことを意味します。

  1. .NET 4バージョンが選択された新しいアプリケーションプールを作成し、マネージパイプラインモードをIntegratedとして作成します。
  2. アプリケーションのアプリプールを上記で作成したものに変更して、今すぐお試しください。
8

この問題を修正する方法はIIS内ではありません。 Visual Studio内のIIS Express内でアプリケーションを実行しようとしていました。私はウェブを検索し、いくつかの記事はsystem.webタグにIDタグを追加するように言っていました。これは正しい方法ではありません。

この問題を解決する方法は、プロジェクトファイルをクリックしてプロパティに移動することでした。管理されたパイプラインの下で、プロパティ値をクラシックから統合に変更しました。

これで問題が解決しました。

5
Tyrone Moodley

Visual Studio 2012 while デバッグエラーが発生した場合

ウェブサイトメニュー-> IIS Expressを使用やってくれた

4
Avinash

次の手順でこの問題を解決しました。

  1. プロジェクトのルートフォルダを右クリックします。
  2. 後藤のプロパティ
  3. 左側のメニューで[ウェブ]をクリックします
  4. 現在のポートを変更 http:// localhost:#### /
  5. [仮想ディレクトリの作成]をクリックします
  6. 変更を保存する(ctrl + s)
  7. 走る

役立つかもしれません。

4

VS2012を使用している人

プロジェクトに移動>プロパティ> Web

[ローカルIIS Webサーバーを使用]をオンにします

[Use IIS Express]をオンにします

プロジェクトURL http:// localhost:PORT /

3
Techvalens

GitHub ソリューションは、追加することで問題を解決しました

  • Global.asax.cs:AntiForgeryConfig.SuppressXFrameOptionsHeader = trueを設定します。 Application_Startで:
  • Application_BeginRequestにX-Frame-Optionsヘッダーを手動で追加します
1
Thulasiram