2010-02-22 210 views
1

我正在使用第三方組件創建基於硬編碼文件路徑的設置文件,即它們被編譯到DLL中,例如ASP.NET MVC - 網站路徑

%APPDATA%\Vendor\Settings.ini

我創建了使用和工作得非常好幾個控制檯/服務應用程序。但是,我現在試圖通過我的ASP.NET MVC Web應用程序使用類似的方法,並且設置文件似乎永遠不會寫出來!

通常,如果應用程序是我acconut例如下運行該文件將被寫入到地方,比如:

C:\Documents and Settings\James\Application Data\Vendor\Settings.ini

所以我想,如果網站的應用程序池是在同一帳戶下運行該文件將是保存到同一個地方....但是,它從來沒有出現。該帳戶是在Windows Server 2003下運行的管理員帳戶。

任何想法?

謝謝。

回答

0

找不到解決方案,因此我決定開發一個本地WCF服務(它將在正確的目錄路徑中創建設置文件),並通過我的Web應用程序訪問它。

1

您是否檢查過設置文件是否在Web應用程序的App_Data文件夾中創建?如果沒有,你可以把一個現有的設置文件,看看它是否使用它?

+0

檢查App_Data文件夾,沒有任何寫在那裏。奇怪的是,當我在運行Windows 7 x64的Visual Studio中運行時,這在我的Dev機器上運行良好,因此它是IIS7.0。 – James 2010-02-22 12:54:48

+0

適用於您的開發機器,因爲Web服務器正在使用憑證運行。您是否嘗試在App_Data中提供設置文件並檢查它是否使用它? – tvanfosson 2010-02-22 13:33:35

+0

是的嘗試在App_Data中放置一個設置文件,但從未工作過。通過網站運行時,該特定目錄將解析到哪裏?它通常是App_Data文件夾嗎?也許我應該手動創建一個設置文件,並將其放在預期的文件夾中,而不是依靠dll來爲我完成。 – James 2010-02-22 14:24:50

0

這不是關於webpool帳戶,而是關於訪客用戶的帳戶。

轉到您的網站在IIS中的屬性,目錄安全和匿名訪問點擊編輯按鈕,在那裏你會看到當有人訪問你的網站時使用這個帳戶。

+0

@VinTem,目前我不允許匿名訪問該網站,它被設置爲「集成Windows身份驗證」。我有一個日誌,用於檢查網站正在運行的帳戶,它是正在進行身份驗證的帳戶。這使得爲​​什麼設置被寫入正確的路徑更加不尋常。 – James 2010-02-22 15:59:12