我有一个创建目录的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'被拒绝。
我非常坚持这一点。有什么想法吗?
答案 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的驱动器具有权限,但不具有共享权限。