.Net网站创建目录以拒绝远程服务器访问

时间:2010-04-22 22:07:24

标签: .net iis access-denied remote-server create-directory

我有一个创建目录的Web应用程序。 在Web服务器上创建目录时,应用程序工作正常,但是,当它尝试在远程文件服务器上创建目录时,它不起作用。

文件服务器和网络服务器位于同一个域中。 我在我们的域中创建了一个本地用户“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);

这是我得到的错误: 访问路径'\ fileserver \ images \ NewDirectory'被拒绝。

我非常坚持这一点。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

检查服务器/站点的信任级别。如果您的运行速度低于完全信任,则可能需要修改FileIOPermission设置:

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

$AppDir$宏值会扩展到您网站所在的文件夹。您可以通过用分号分隔附加路径来添加其他路径。

您需要编辑的文件将由<trust level=.../>中主web.config文件中的C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG设置指向,假设您正在运行.NET 2.0。

答案 1 :(得分:0)

该问题最终成为路径问题。

\ fileserver \ images \已映射到h:\ files \ http \ images

该服务对H的驱动器具有权限,但不具有共享权限。