我的HttpHandler不希望在网络上创建目录
本文关键字:网络 创建目录 希望 HttpHandler 我的 | 更新日期: 2023-09-27 18:15:39
我在HttpHandler中使用了这行简单的代码:
Directory.CreateDirectory(@"''srv-001'dev'folderToCreate'");
我收到UnauthoridezAccessException告诉我对路径的访问被拒绝。
从这里开始,我用c#创建了一个小的Dos应用程序,做同样的事情,我能够创建文件夹。所以,我想可能是IIS运行在与我不同的用户上。我进入IIS并将应用程序池更改为自定义用户。但是,不幸的是,我得到了同样的异常。我试着在我的电脑上创建一个共享文件夹,我可以创建目录。另外,在调试时,我可以看到System.Threading.Thread.CurrentPrincipal.Identity的AuthenticationType为",IsAuthenticated为false, name为"。
因此,通过所有这些测试,我可以得出结论,由于某些安全访问,接收文件的HttpHandler无法创建目录。
我如何才能访问我的HttpHandler,以便能够创建一个目录(和文件)到网络文件夹?
实际上,我想到了另一件要检查的事情。不仅存在应用程序池身份,还存在与匿名身份验证相关的身份。如果你使用的是iis 7/7.5,你应该能够看到web应用程序的身份验证图标,并双击它。选择匿名身份验证,然后单击编辑将显示一个对话框,为您提供指定用户或应用程序池用户的选项。我敢打赌,如果你选择应用池用户,这将解决这个问题。
如果你是在iis 6,我不记得很清楚,但我会给它一个尝试。没有iis 6在我面前验证,但我记得有一个匿名访问按钮,你可以点击它会弹出一个对话框,你可以指定用户。不要认为你有使用应用池身份的选择,必须明确指定帐户。