2012-06-11 60 views
3

我已將我們公司的Web應用程序從Windows Server 2003遷移到Windows Server 2008 R2。這些都是.Net 2.0經典網絡應用程序。他們似乎都做工精細,訪問任何資源時與路徑開始/報告/ ...除外Windows Server 2008 R2 + IIS 7.5 - 無法找到資源

在一個應用程序在磁盤上的物理路徑是C:\網站\ APP_NAME \ web服務\報表...在此報告文件夾PDF文件是動態生成的並寫入磁盤。他們可以通過這樣的URL訪問:

http://domain_name/Reports/xxxx.pdf 

其中/ Reports是映射到上述物理路徑的虛擬目錄。這工作正常2003服務器& IIS6但在IIS7.5 & 2008 R2我不斷收到以下錯誤:

該資源找不到。

說明: HTTP 404.您正在查找的資源(或其某個依賴項)可能已被刪除,名稱已更改或暫時不可用。請檢查以下網址並確保它拼寫正確。

請求的URL: /Reports/xxxx.pdf

我有一個動態生成的報告,並直接流他們到客戶端瀏覽器保存到本地磁盤,而不是被寫入到磁盤上的另一個Web應用程序在服務器上。類似於上述示例,生成該報告的頁面是根據路徑發現如下:

/Reports/Viewer.aspx

在這種情況下,存在沒有使用虛擬目錄。在瀏覽器中引用的網址是:

http://another_domain_name//Reports/Viewer.aspx 

我再次得到了同樣的錯誤信息如上... HTTP 404 - 資源無法找到。

我已經嘗試了所有在陽光下的權限設置,試圖讓它工作,但無濟於事。我已經使用內置帳戶,創建了具有非常小權限和完全管理權限的新帳戶。我也玩過新的AppPool身份,但沒有成功。似乎沒有關係我在目錄上專門設置了什麼權限,或者爲應用程序池配置的帳戶或每個網站本身的基本設置。

雖然我發現了一件事,但是,雖然瀏覽器正在收到HTTP 404錯誤,但沒有在每個網站的IIS日誌文件中出現此請求的記錄!這真讓我感到困惑,因爲我一定會在所請求的資源上看到404日誌條目失敗。

還有其他需要注意的是,我正在該機器上運行SQL Server 2008 Enterprise,並安裝並啓用了Reporting Services。這是一個延伸,但是我的網站上的/ Reports路徑與機器上運行的其他東西有衝突嗎?我爲服務器上運行的每個單獨的域和網站使用不同的綁定/主機頭。

+0

是否啓用在IIS失敗請求日誌記錄?再看看,你說的是沒有任何請求觸及該服務器的痕跡?如果您「停止」該服務器上的網站,您是否不再獲得404,而只是發生連接錯誤? – CodingGorilla

回答

2

檢查Reports folder conflict。請記住,Google比SO快。

+0

AFAIK這只是發生,當你默認的網站上,在OP說這些都是在一個單獨的網站,所以我不認爲這也適用。 – CodingGorilla

+0

見http://technet.microsoft.com/en-us/library/bb630449.aspx的「http:// +:80 /報告\t接收發送到任何IP地址或主機名是有效的,任何請求電腦只要在URL中包含「報告」虛擬目錄名即可。「 –

+0

感謝Tomas,對錢有所瞭解。現在都在工作。 StackOverflow是新的谷歌。 :o) –

1

IIS給出的404錯誤不僅僅是文件未找到 - 所以它不會給攻擊者太多。查看事件日誌(應用程序),並嘗試從服務器本身訪問它。

的另一件事是檢查你的IIS應用程序池的配置是否正確 - 尤其是用正確的管道模式和.NET Framework的版本。

0

在命令提示符下,鍵入:

netsh http show urlacl

查看是否有與/reports/ --maybe一個從SQL Server Reporting Services的遺留安裝任何綁定?

V/R BK

相關問題