我目前正在使用ASP.NET 3.5/IIS7应用程序,为此我将WinHost用作临时托管环境。我遇到了一些我认为是权限问题的戏剧,票务流程刚刚达到“您自己一个人”的阶段。

这是我想做的事情:

var dir = Server.MapPath("~/MyFolder/NewPath");
Directory.CreateDirectory(dir);

这是我得到的回应:



堆栈跟踪显示CreateDirectory行失败。该应用程序在本地运行良好,并且该应用程序池在其下运行的标识具有对“MyFolder”路径的写访问权。在两种环境中,信任级别都设置为“完全”。

WinHost的指导是:



进一步查看,WindowsIndentity.GetCurrent()。Name返回“W02\aspnet_17884”,它似乎是帐户特定的身份。我的感觉是该帐户无权写入应用程序的文件系统,但是当我在此提示WinHost时,我收到了:







这显然是为什么问题现在出现在Stack Overflow上的原因:)

谁能建议任何应用程序级别的配置更改?这是否更有可能是托管站点上的权限问题?谢谢。

更新:我也put the question up on the WinHost forum

最佳答案

答案是... Web部署破坏了它。实际上,答案严格地是:权限根本不存在(如预期的那样),但是原因似乎是Web部署以某种方式删除了写权限。从Web部署的角度来看,我可以发布ACL,但是为什么WinHost允许它操纵包含网站的目录的权限,这超出了我的理解。

有关我的问题(以及WinHost的答复)的更多信息,在其论坛上的No write access to file system线程下。

10-04 13:50