ミニプロファイラーを WCF で使用しようとしています。404 エラーが発生し続けます。
http://website/mini-profiler-resources/results
返される結果はありません。
ミニプロファイラーの 2 つのバージョンを使用しています。WCF のサポートを含まない NUGET バージョンは問題なく動作します。
WCF 統合を使用できるように、git バージョンをダウンロードしました。ソース「Sample.Mvc」に含まれるテスト プロジェクトを実行すると、ホームページの実行時に同じエラーが発生しますが、一部のリンクでは発生しません。自分の Web サイトのどのページでも結果が得られないようです。同じ 404 が発生します。
マスター版をダウンロードしました。.NET 4.0 とスタジオ 2010 を使用しています。
構成ファイルに次のものがあり、ハンドラーの有無にかかわらず試しました。
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
<add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
</handlers>
</system.webServer>
私は間違いなく start メソッドと stop メソッドを呼び出しています。
StackExchange.Profiling.MiniProfiler.Stop();
私はこれを読みました: MvcMiniProfiler results request given 404 in Asp.Net MVC app
役に立ちませんでした。
問題の手がかりを見つけた
ミニプロファイラーの次のコードは NotFound を返します プロファイラーは、ある種の guid 値が存在することを期待していますが、存在しません。
private static string Results(HttpContext context) {
// this guid is the MiniProfiler.Id property
Guid id;
if (!Guid.TryParse(context.Request["id"], out id))
return isPopup ? NotFound(context) : NotFound(context, "text/plain", "No Guid id specified on the query string");
仮修正
上記のコードを取り出し、ストレージから最初の GUID を収集したところ、問題が解決しました。このコードはクリーンアップする必要があると思います。GIT を学習してから、自分でクリーンアップする必要があります。
var id = MiniProfiler.Settings.Storage.List(10).FirstOrDefault();