0

我有一个创建目录的 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' 被拒绝。

我很坚持这一点。有任何想法吗?

4

2 回答 2

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。

于 2010-04-25T06:49:42.610 回答
0

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

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

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

于 2010-04-25T12:27:13.160 回答