2010-04-22 105 views
0

我有一个创建目录的web应用程序。 在Web服务器上创建一个目录时,该应用程序可以正常工作,但是,当它尝试在我们的远程文件服务器上创建一个目录时,它不起作用。.net网站创建目录到远程服务器访问被拒绝

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

这里是我得到的错误: 访问路径“\文件服务器\影像\ NewDirectory“被拒绝。

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

回答

0

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

\文件服务器\影像\被映射到H:\文件\ HTTP \图像

服务为H有权限的驱动器,但不是份额。

0

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

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

$AppDir$宏值扩展到您的网站所在的文件夹,您可以通过用半分离追加其他路径-colons。

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