2010-04-22 104 views
0

我有一個創建目錄的web應用程序。 在Web服務器上創建一個目錄時,該應用程序可以正常工作,但是,當它嘗試在我們的遠程文件服務器上創建一個目錄時,它不起作用。.net網站創建目錄到遠程服務器訪問被拒絕

文件服務器和網絡服務器在同一個域中。 我在我們的域中創建了一個本地用戶「DOMAIN \ aspnet」。本地用戶在兩臺服務器上。

我正在域用戶下運行我的.Net應用程序池。我也嘗試在web.config中使用windows impersonate在域用戶下運行。

我已驗證域用戶是否具有對遠程目錄的完全控制權。爲了進行調試,我還給了「每個人」完全控制遠程目錄。

爲了嘗試調試,我還將域用戶添加到管理員組。

我在Web服務器上有一個簡單的.net測試頁來測試這個。 通過測試頁面,我可以讀取文件服務器上的目錄並獲取其中的所有內容。

我無法上傳文件或在文件服務器上創建目錄。

這裏的代碼工作:

var path = @"\\fileserver\images\"; 
var di = new DirectoryInfo(path); 
      foreach (var d in di.GetDirectories()) 
      { 
       Response.Write(d.Name); 
      } 

這裏的代碼不工作:

path = Path.Combine(path, "NewDirectory"); 
Directory.CreateDirectory(path); 

這裏是我得到的錯誤: 訪問路徑「\文件服務器\影像\ NewDirectory「被拒絕。

我很堅持這一點。有任何想法嗎?

回答

0

該問題最終成爲路徑問題。

\文件服務器\影像\被映射到H:\文件\ HTTP \圖像

服務爲H有權限的驅動器,但不是份額。

0

檢查服務器/站點的信任級別。如果你在低於完全信任的運行,那麼你可能需要修改你的FileIOPermission設置:

<IPermission 
    class="FileIOPermission" 
    version="1" 
    Read="$AppDir$" 
    Write="$AppDir$" 
    Append="$AppDir$" 
    PathDiscovery="$AppDir$"/> 

$AppDir$宏值擴展到您的網站所在的文件夾,您可以通過用半分離追加其他路徑-colons。

假設您正在運行.NET 2.0,那麼您需要編輯的文件將在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG中的主文件web.config文件中的<trust level=.../>設置處指向。