このサイトですでに回答されている場合はお詫びします。検索しましたが、この正確なシナリオは見つかりませんでした。
Log4netをWCFサービスに追加しています。 Application_Errorイベントにハンドラーを追加しましたが、すべてのリクエストでファイルが見つからないというエラーをキャッチしています。
私はこれをWebサイトで見ましたが、通常、エラーはルートディレクトリに「ファビコン」ファイルがないか、cssスタイルシートで参照されている画像が欠落していることが原因である可能性があります。
ただし、これはWCFサービスであり、CSSスタイルシートはなく、ルートにファビコンを追加しても問題は解決しませんでした。
他の誰かがこれをトラブルシューティングするための良い方法を持っていますか?
いくつかの手がかり:
エラーメッセージにURLとファイルパスを追加しました。これが次のとおりです。
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);
}
どんな助けでも大歓迎です。
サービスが指定されていない可能性があります。 Webサーバー(ローカル開発者も同様)がフォルダーの要求を受信すると、そのフォルダー内でデフォルトページ(通常はindex.htm、index.html、default.asp、default.aspxなどと呼ばれます)を探し、 (RESTベースのサービスの説明を使用している場合を除く))VSから実行すると、デバッグによって実際のサービスに直接移動します。
この場合、サービスを構築したため、正確なサービスの場所、つまりhttp://localhost:3994/service.svc
を指定する必要があります。
また、デバッグセッションを開始してからURLをhttp://localhost:3994/
に変更すると、デバッガーの場合にこれが当てはまるかどうかを確認できるはずです。