2011-01-27 79 views
8

道歉,如果這已經在這個網站上回答,我搜索但沒有找到這個確切的情況。如何解決「System.Web.HttpException(0x80004005):文件不存在」?

我將log4net添加到WCF服務。我在Application_Error事件中添加了一個處理程序,並且它在每個請求中捕獲文件未找到錯誤。

我已經看到了這個網站,通常這個錯誤可以追溯到根目錄中沒有「favicon」文件,或者在css樣式表中引用缺少的圖像。

但是,這是一個WCF服務,沒有CSS樣式表,並且向根添加一個圖標並沒有解決問題。

有沒有其他人有一個很好的方法來解決這個問題?

一些線索:

  • 我還沒有部署這個沒有真正的IIS服務器,我在本地運行它。
  • ,當我在Visual Studio中調試正在運行,只有當我從Web瀏覽器訪問服務(IE或Chrome)
  • 我添加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); 
} 

任何幫助將不勝感激。

+0

你忘了在URL中提到.svc文件嗎? – Pradeep 2011-01-27 16:44:25

+0

查看我發佈到我的問題的編輯。 – camainc 2011-01-27 19:14:51

回答

6

原因可能是該服務尚未指定。當Web服務器(本地開發人員)接收到文件夾請求時,他們會查看該文件夾內的默認頁面(通常稱爲:index.htm,index.html,default.asp,default.aspx等)以及(除非您使用基於REST的服務描述)。當您從VS運行時,調試會直接轉到實際服務。

在這種情況下,因爲您已經建立了服務,您需要指定確切服務的位置,即http://localhost:3994/service.svc

此外:如果您啓動一個調試會話,然後將URL更改爲http://localhost:3994/您應該可以檢查調試器是否屬於這種情況。

相關問題