2012-08-13 55 views
2

我的應用程序應該在執行過程中創建一個文件夾結構,在該結構中它將創建,存儲和處理在運行時生成的文件。這個系統已經在桌面應用程序中測試過,並且工作正常。現在我正在嘗試在C#asp.net webforms DNN項目中使用它,但它不符合預期。如何在運行時使用所有權限在IIS 7中運行的網站中創建文件夾?

當我調試目錄在以下位置的原因,我不明白創建的項目(但在應用程序執行罰款):

C:\Program Files\Common Files\microsoft shared\DevServer\10.0\ 

當我運行通過本地主機環境相同的應用程序( IIS 7,.NET 4.0,集成管道模式),拋出以下異常:

發生嚴重錯誤。訪問路徑 'c:\ windows \ system32 \ inetsrv \ Processing \'被拒絕。

「處理」目錄不是根據驗證的應用程序邏輯創建的。

我想要在IIS中執行的應用程序的bin文件夾中創建此文件夾結構。我通過根據應用程序的bin文件夾中的要求創建虛擬目錄結構而在需要的位置手動創建了文件夾結構,但這也沒有幫助。

所以我的問題是:

  • 請某人能澄清如何以及在何處被創建網站的目錄和文件都應該在IIS託管時得到保存。
  • 我需要執行哪些步驟以確保在具有所有權限的IIS 7中執行的應用程序的bin文件夾中創建文件和目錄。
  • 是否有任何代碼修改,我將不得不爲此發生。

任何鏈接和答案指向我的寫作方向是高度讚賞。

謝謝!

回答

1

默認情況下,您的Web服務器(IIS或本地開發服務器)只是保存到其工作目錄。如果要保存到特定路徑,請使用MapPath(或Server.MapPath)獲取與您的應用程序對應的物理路徑。例如:

string path = MapPath("~/bin"); 

您還需要確保IIS正在運行的帳戶對您需要寫入的目錄具有讀/寫權限。這意味着進入你的服務器並修改文件夾的權限。要找到用戶帳戶,您必須轉到應用程序池下的高級設置,並檢查爲設置了什麼身份

+0

這就是問題所在 - 我使用Environment.CurrentDirectory獲取桌面應用程序中的位置,該位置返回了Web應用程序中Web服務器的工作目錄。你的解決方案完美地解決了它謝謝! – Shantanu 2012-08-15 05:42:35

相關問題