ASP.NET Webアプリケーション(.NET 4.6.1)のデバッグ中に異常な動作が発生しました。 HTTPエラー(たとえば、404または403)が発生するたびに、リクエストは合計3回まで複製されます。IIS ExpressでASP.NETをデバッグするときの重複要求
私はこの独特の問題をfiddlerでテストしました。Intellitraceは、3つの同一の要求を効果的に示しています。
パイプライン内の任意の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>
エラーを生成するコードを表示します。あなたのコードである必要はありません。ただ問題を再現する必要があります。 –
エラーを生成するコードはありません。この例では、 'https:// localhost:44300'へのリクエストを行い、IISは403ステータスコードを直接返します。存在しないエンドポイント(例えば 'localhost:44300/somethingnonexisting')にリクエストを行うと同じですが、IISは404を返します。 –
また、Owinパイプラインには何もありません。ミドルウェアこの例で示されています。 –