2009-10-23 34 views
5

我有一個.net網站駐留在運行win2k3服務器上的IIS 6.0的網絡服務器上。這包括通過UNC名稱指向文件服務器的虛擬目錄。 「connect as」設置爲在我們的AD域中使用可訪問Web應用程序的服務帳戶,並且可以寫入和修改文件服務器文件夾。我目前正在使用服務帳戶使用別名,並在Web服務器上的Miscrosoft.net臨時文件文件夾中設置了適當的權限。我無法創建寫目錄或保存文件。任何信息將不勝感激。FileUpload .net控制並將文件保存到遠程文件服務器上的虛擬文件夾

回答

2

首先,「Connect as」密碼不會永久緩存在內存中(重新啓動),因此不幸的是,您可能需要尋找替代此連接方法的原因。

其次,ASP.NET工作人員帳戶「IUSR_IIS機器名稱」是否可以訪問您正在編寫的目標目錄?我假設不,因爲它不會是遠程服務器上的已知用戶。這意味着「Everyone」特殊用戶/對象必須被授予訪問權限(在您的特定場景中)。

另一種方法是使用兩臺主機都知道的用戶進行連接。

+0

我有一個服務帳戶設置一個是我們的AD域。我已在web.config中使用身份條目以及connect as(它用於查看虛擬文件夾中的文件)設置該服務帳戶,但無助於編寫。從我在.net上發現的一些文章中,我添加了對Web服務器上的.net tempfile文件夾的額外更改,這是爲了緩存這些文件所必需的。我認爲問題的一部分是UNC名稱以及身份如何通過。我將在單獨的評論中附上代碼段。 – 2009-10-26 13:05:46

+0

我附上了一個代碼片段: from default.aspx: string SaveLocation = Server.MapPath(「/」)+「ServerInspectionFilePath」+「\\」+ ClientFileName; from web.config: 我認爲路徑的語法/格式是關閉的。我可能會被迫在Web服務器上進行遠程調試。 – 2009-10-26 13:06:24

0

我現在有這個工作。爲了使其正常工作,您需要: 1.您的域中有一個服務帳戶,可供Web服務器和文件服務器訪問 2.您可以使用「connect as」創建適當的虛擬文件夾,設置爲具有適當密碼的服務帳戶 3.您需要將服務帳戶的寫​​入權限授予服務器上的.net Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files目錄 4.服務必須對帳戶進行讀取/寫入/修改對文件夾的訪問 5.「另存爲」必須是文件服務器的完整UNC名稱。不要使用server.map路徑,而是文件夾的全名,例如:\ myserver \ sharename \ directory \ + filename。我將它作爲鍵/值對存儲在web.config中。

總結一下。

代碼片段:

嘗試 { 如果(uploadDoc.FileName = 「」!) {

   if (!Directory.Exists(MyFilePath)) 
        Directory.CreateDirectory(ServerFilePath); 


       if (!File.Exists(Server.MapPath(ServerFileName))) 
       { 
        uploadDoc.PostedFile.SaveAs(SaveLocation); 
       } 
相關問題