2009-10-23 87 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); 
       } 
相关问题