4

ミニプロファイラーを 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();
4

1 に答える 1

2

.../mini-profiler-resources/results-index が表示されますか?

ところで、ハンドラーは必要ありません。リンクにコンマがありますが、これは単なる質問のタイプミスであると想定してください。

あなたは最後のことを開始しApplication_BeginRequest()、停止することを呼び出していますかApplication_EndRequest()

設定しましたGlobalFilters.Filters.Add(new ProfilingActionFilter());か?

WebActivator を と で使用していますMiniProfilerPackageMiniProfilerStartupModule

不必要なクラフトがあるように見えるので、自分の実装を整理する必要があると思います。

于 2012-10-11T12:10:28.293 に答える