我有一个asp.net Web应用程序,可以从远程主机访问共享文件夹中的文件, 当从vs2008运行Web应用程序时,它会检索图像文件并显示它们。现在,当我使用虚拟目录在IIS中部署相同的项目时,应用程序无法访问共享文件夹上的文件,表示拒绝访问。
我需要添加任何延迟设置,我已经将Asp.net和网络服务添加到虚拟路径指向的phsical路径上的项目文件中。
string pic3 = @"\\M37350\temp\GraphicUserImage.jpg";
FileInfo f = new FileInfo(pic3);
if (f.Exists)
{
Image1.ImageUrl = pic3;
Image1.Visible = true;
}
感谢。
答案 0 :(得分:3)
VS2008在执行Web应用程序时使用您的凭据。您需要在IIS虚拟目录中设置一个帐户(可以访问远程文件夹的帐户)。
答案 1 :(得分:1)
您需要将应用程序池的标识设置为可以访问此共享文件夹的域帐户(domain\user
),内置的“网络服务”帐户无权访问远程共享文件夹
更改您的应用程序池标识:
您需要通过访问网站属性“主目录”标签了解您的网站正在使用哪个应用程序池(应用程序池是最后一项)
关闭网站属性,在IIS中的应用程序池下找到相应的应用程序池,打开属性并转到“身份”选项卡以更改用户。
也可以在serverfault.com上查看此答案:Permission for ASP.NET application on web server to access shared folder on another server
这是一步一步设置自定义应用程序池标识ASP.Net and IIS Support Team Blog for Microsoft France
答案 2 :(得分:0)
您需要chmod共享文件夹,以便它和/或其他人可读写。通常主机有一个接口。据我所知,无法通过代码设置权限。