「System.Web.httpexception(0x80004005):ファイルが存在しない」というトラブルシューティング方法は?

StackOverflow https://stackoverflow.com/questions/4819170

  •  26-10-2019
  •  | 
  •  

質問

これがすでにこのサイトで回答されている場合、私はこの正確なシナリオを検索しましたが、謝罪しました。

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

これはWebサイトでこれを見てきましたが、通常、ルートディレクトリに「Favicon」ファイルを持たないか、CSS StyleSheetで参照されている欠落した画像を持たないようにエラーを追跡できます。

ただし、これはWCFサービスであり、CSS StyleSheetはありません。ルートにFaviconを追加しても問題は解決しませんでした。

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

いくつかの手がかり:

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

    URL: http:// localhost:3994/

    ファイルパス: /

    エラー: 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);
}

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

役に立ちましたか?

解決

その理由は、サービスが指定されていない可能性が高いためです。 Webサーバー(ローカル開発者も)がフォルダーのリクエストを受信すると、デフォルトページ(通常はindex.htm、index.html、default.asp、default.aspxなど)のフォルダー内に表示されます。それを提示します(休憩ベースのサービスの説明を使用している場合)。 VSから実行すると、デバッグは実際のサービスに直接移動します。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top