我的HttpHandler不想在网络上创建目录

时间:2011-11-25 17:45:04

标签: c# asp.net .net iis-7 httphandler

我在HttpHandler中使用这段简单的代码:

Directory.CreateDirectory(@"\\srv-001\dev\folderToCreate\");

我收到 UnauthoridezAccessException ,告诉我该路径的访问被拒绝。

从这里开始,我在C#中创建一个Dos应用程序,做同样的事情,然后我就可以创建文件夹了。所以,我认为可能是IIS运行在与我不同的用户身上。我去了IIS并将应用程序池更改为自定义用户。但是,不幸的是,我得到了同样的例外。

我尝试在我的计算机上创建一个Share文件夹,然后我可以创建目录。此外,在调试时,我可以看到System.Threading.Thread.CurrentPrincipal.Identity的AuthenticationType为“”,IsAuthenticated为false,并命名为“”。

因此,通过所有这些测试,我可以得出结论,接收文件的HttpHandler由于某些安全访问而无法创建目录。

如何能够对HttpHandler进行盛大访问,以便能够在网络文件夹中创建目录(和文件)?

1 个答案:

答案 0 :(得分:0)

实际上,我想到另一件事要检查。不仅存在应用程序池标识,还存在与匿名身份验证关联的标识。如果您使用的是iis 7 / 7.5,您应该能够看到Web应用程序的身份验证图标并双击它。选择匿名身份验证然后单击“编辑”将显示一个对话框,您可以选择指定用户或应用程序池用户。我打赌,如果你选择应用程序池用户,那将解决它。

如果你在iis 6上,我不记得清楚,但我会试一试。没有iis 6在我面前验证,但我记得有一个匿名访问按钮,你可以点击它会弹出一个对话框,你可以指定用户。不认为您可以选择使用应用程序池标识,并且必须明确指定帐户。