【问题标题】:access denied for asp.net deployed on iis在 iis 上部署的 asp.net 访问被拒绝
【发布时间】:2011-12-20 20:29:28
【问题描述】:

我有一个 asp.net Web 应用程序,可以从远程主机访问共享文件夹中的文件, 当从 vs2008 运行 Web 应用程序时,它会检索图像文件并显示它们。然而,当我使用虚拟目录在 IIS 中部署相同的项目时,应用程序无法访问共享文件夹上的文件,它说访问被拒绝。

我需要添加任何权限设置吗?我已经将 Asp.net 和网络服务添加到虚拟路径所指向的物理路径上的项目文件中。

    string pic3 = @"\\M37350\temp\GraphicUserImage.jpg";


        FileInfo f = new FileInfo(pic3);


        if (f.Exists)
        {

            Image1.ImageUrl = pic3;
            Image1.Visible = true;
        }

谢谢。

【问题讨论】:

    标签: asp.net iis-6


    【解决方案1】:

    VS2008 在执行 Web 应用程序时正在使用您的凭据。您需要在 IIS 虚拟目录中设置一个帐户(有权访问远程文件夹的帐户)。

    【讨论】:

    • 更恰当地说,您需要将文件移动到虚拟目录中,这样您就不需要提升运行 IIS 的帐户的权限
    【解决方案2】:

    您需要将应用程序池的身份设置为有权访问此共享文件夹的域帐户 (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

    【讨论】:

    • 我在 IIS 上选择了应用程序池和虚拟目录,并将目录安全性从 IUSR_M38329 更改为
    【解决方案3】:

    您需要对共享文件夹进行 chmod,使其对您和/或其他人可读和可写。通常主机对此有一个接口。据我所知,无法通过代码设置权限。

    【讨论】:

    • 我已将 iis 上的应用程序池和虚拟目录更改为使用 Adminstrator 用户而不是 IUSR_MachinName 似乎仍然无法访问共享文件夹中的文件
    • 右键单击目录下的网站安全-->编辑身份验证方法_>取消选中匿名并确保选中集成Windows身份验证。在网站 web.config 添加 这使得 asp.net 以有权访问共享文件夹资源的 Windows 用户帐户身份运行。
    猜你喜欢
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    相关资源
    最近更新 更多