9

このサイトですでに回答されている場合はお詫びします。検索しましたが、この正確なシナリオは見つかりませんでした。

log4netをWCFサービスに追加しています。Application_Errorイベントにハンドラーを追加しましたが、すべてのリクエストでファイルが見つからないというエラーをキャッチしています。

これはWebサイトで見たことがありますが、通常、エラーはルートディレクトリに「ファビコン」ファイルがないか、cssスタイルシートで参照されている画像が欠落していることが原因である可能性があります。

ただし、これはWCFサービスであり、CSSスタイルシートはなく、ルートにファビコンを追加しても問題は解決しませんでした。

他の誰かがこれをトラブルシューティングするための良い方法を持っていますか?

いくつかの手がかり:

  • これはまだ実際のIISサーバーに展開しておらず、ローカルで実行しています。
  • Visual Studio内のDEBUGで実行している場合、エラーは発生しません。Webブラウザー(IEまたはChrome)からサービスにアクセスする場合のみです。
  • エラーメッセージにURLとファイルパスを追加しました。これが次のとおりです。

    URL: http:// localhost:3994 /

    FilePath: /

    エラー: System.Web.HttpException(0x80004005):ファイルが存在しません。

編集:上記の値は、ログに記録された例外に表示されるものです。

protected void Application_Error(object sender, EventArgs e)
{
    var objErr = Server.GetLastError().GetBaseException();
    if (objErr is System.Web.HttpException)
    {
        var filePath = Context.Request.FilePath;
        var url = ((HttpApplication) sender).Context.Request.Url;
        Log.Error("URL: " + url + "; FilePath: " + filePath, objErr);
    } else
        Log.Error("Application Error", objErr);
}

どんな助けでも大歓迎です。

4

1 に答える 1

7

サービスが指定されていない可能性があります。Webサーバー(ローカル開発者も同様)がフォルダーの要求を受信すると、そのフォルダー内でデフォルトページ(通常はindex.htm、index.html、default.asp、default.aspxなどと呼ばれます)を探します。それを提示します(RESTベースのサービス記述を使用している場合を除く)。VSから実行すると、デバッグによって実際のサービスに直接移動します。

この場合、サービスを構築したため、正確なサービスの場所を指定する必要がありますhttp://localhost:3994/service.svc

また、デバッグセッションを開始してからURLを変更するhttp://localhost:3994/と、デバッガーの場合にこれが当てはまるかどうかを確認できるはずです。

于 2011-01-27T19:29:30.397 に答える