我有一個網站坐在虛擬目錄在IIS 6.0中。在這個虛擬目錄中,還有一個我需要用來訪問外部Web服務的P12認證。當我嘗試通過網站訪問此文件時,出現「文件未找到」錯誤。無法訪問IIS 6虛擬文件夾從Web應用程序
我已經驗證該文件是存在的,並已反映我的本地開發enviromnent,以配合生產和一切工作正常那裏。
我很有信心,這是一個權限問題。
任何人都可以指向正確的方向嗎?
謝謝!
我有一個網站坐在虛擬目錄在IIS 6.0中。在這個虛擬目錄中,還有一個我需要用來訪問外部Web服務的P12認證。當我嘗試通過網站訪問此文件時,出現「文件未找到」錯誤。無法訪問IIS 6虛擬文件夾從Web應用程序
我已經驗證該文件是存在的,並已反映我的本地開發enviromnent,以配合生產和一切工作正常那裏。
我很有信心,這是一個權限問題。
任何人都可以指向正確的方向嗎?
謝謝!
我發現這個例外的信息是誤導性的。該消息說是未找到文件,但消息包含在System.CryptogrphyException中。最終,問題在於應用程序池帳戶的權限。一旦這些設置正確,它運作良好。
默認情況下,IIS 6只服務於特定類型的文件(基於擴展)請求的客戶端。如果你是P12認證(我不確定那是什麼)文件不是其中之一,404就是你應該收到的。
在你的IIS管理控制檯,您可以修改這些處理和/或送達的文件類型列表。
這聽起來像是你可能試圖以編程方式訪問這個文件,在這種情況下,你需要提供更多的信息 - 向我們展示試圖訪問該文件的代碼,也許是例外以及
編輯:
基於你對文件的位置評論,你可以嘗試沿着這行做的事情:
File.Exists(Server.MapPath("/") + "DLWSCert.p12")
嗨喬希代碼是prett簡單。如果(!(File.Exists(certLocation))){throw new ApplicationException(string.Format(「Can not locate {0}。」,SiteConfig.CertLocation)); } – PseudoToad 2012-07-18 17:50:06
您可以在檢查時發佈物理文件路徑以及'certLocation'的值嗎?他們不一樣嗎? – 2012-07-18 17:59:34
嗨喬希 該p12是在該網站的Default.aspx相同的文件夾 C:\ inetput \ wwwroot \ mysite \ DLWSCert.p12 – PseudoToad 2012-07-18 18:04:57
如果你確信這是一個權限問題,你有沒有試圖改變對文件的權限,授予ASPNET進程讀取訪問? – 2012-07-18 17:20:07
嗨喬希。 IIS在本地系統下運行,應用程序池在域帳戶下運行。我已經添加了這兩個,並授予文件和整個網絡文件夾的完全權利無濟於事。 我打開它不是一個權限問題的想法,但它工作正常,在其上相同配置的(除非使用我的安全上下文中)我的dev的盒子。 – PseudoToad 2012-07-18 17:38:25