2016-03-23 6 views
5

ASP.NET Webアプリケーション(.NET 4.6.1)のデバッグ中に異常な動作が発生しました。 HTTPエラー(たとえば、404または403)が発生するたびに、リクエストは合計3回まで複製されます。IIS ExpressでASP.NETをデバッグするときの重複要求

私はこの独特の問題をfiddlerでテストしました。Intellitraceは、3つの同一の要求を効果的に示しています。

Fiddler Intellitrace

パイプライン内の任意のOwinミドルウェアが3回呼び出されているので、私は、この問題の影響を見ることができます。このようなシンプルなミドルウェア:

app.Use(async (c, n) => 
{ 
    Debug.WriteLine("HIT!"); 
    await n.Invoke(); 
}); 

3つの連続した "HIT!"コンソールに入れます。

これは、リクエストがミドルウェアによって処理された場合(ミドルウェアが2XXステータスコードで応答しない場合など)にリクエストがエラーを生成した場合にのみ発生します。

何が起こっているのですか?

私はVS2015とIIS Express 10をWin10で実行しています。

[編集]私のWeb.configの設定に関連している可能性がありますか?私はそれから抜粋を加えています。

<system.web> 
    <compilation debug="true" targetFramework="4.6.1" /> 
    <httpRuntime targetFramework="4.6.1" enableVersionHeader="false" /> 
</system.web> 
<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
      <clear /> 
     </customHeaders> 
     <redirectHeaders> 
      <clear /> 
     </redirectHeaders> 
    </httpProtocol> 
    <security> 
     <requestFiltering removeServerHeader="true" /> 
    </security> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <remove name="OPTIONSVerbHandler" /> 
     <remove name="TRACEVerbHandler" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers> 
    <modules runAllManagedModulesForAllRequests="true" /> 
</system.webServer> 
+0

エラーを生成するコードを表示します。あなたのコードである必要はありません。ただ問題を再現する必要があります。 –

+0

エラーを生成するコードはありません。この例では、 'https:// localhost:44300'へのリクエストを行い、IISは403ステータスコードを直接返します。存在しないエンドポイント(例えば 'localhost:44300/somethingnonexisting')にリクエストを行うと同じですが、IISは404を返します。 –

+0

また、Owinパイプラインには何もありません。ミドルウェアこの例で示されています。 –

答えて

2

この問題は、IIS Expressで未処理の要求を管理しようとする複数のハンドラが原因で発生しています。私はWeb.configでそれらを削除して解決しました。

<system.webServer> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
     <remove name="ExtensionlessUrl-Integrated-4.0" /> 
     <remove name="ExtensionlessUrl-ISAPI-4.0_32bit" /> 
    </handlers> 
</system.webServer> 
関連する問題