2010-08-20 104 views
2

我有一个web应用程序,它具有对别名目录的读/写/执行权限。当我在调试模式下在Visual Studio中,下面的语句的工作原理:Directory.Move()在调试模式下工作,但在部署时不工作

Directory.Move("\\\\localhost\\Alias\\oldDirectory","\\\\localhost\\Alias\\newDirectory"); 

最终的结果是,oldDirectory现在在别名目录newDirectory

,当我测试在生产前这段代码,我有oldDirectory并在别名目录newDirectoryDirectory.Move现在表现得好像只是将oldDirectory复制到newDirectory一样。

这是怎么发生的?

回答

0

我相信,而不是使用Directory(其是静态的)我用DirectoryInfo解决了我的问题。我认为问题的核心在于DirectoryDirectoryInfo做的更多的安全检查。我仍然不清楚这是为什么,但它似乎工作。

3

这很可能是一个权限问题。

正在执行此命令的用户帐户可能具有创建/写入权限,但不会在别名目录中删除权限。我会检查该程序正在执行的用户帐户是否具有删除/删除子文件夹和文件权限。

编辑:

为了验证这一理论,我将暂时授予Users组完全控制的文件夹上,看看问题是否会消失。

+0

你将如何去设置删除权限?从我可以告诉,如果我有写权限,我也有删除权限。 要更改别名目录的权限,我执行以下操作: 1)右键单击该文件夹,然后选择“共享和安全性”。 2)点击“网页共享”标签,然后点击“编辑权限” 3)在出现的窗体上,我只看到“读取”,“写入”,但没有像“删除”。 我看错了吗? – Davidann 2010-08-20 16:34:09

+0

TBH我不确定从Web共享选项卡授予写入权限是否也授予删除权限。我期望它,但你应该能够通过查看安全选项卡上各个用户/组的权限来进行仔细检查。上面引用的权限来自安全选项卡的高级对话框。 – 2010-08-20 16:43:38

0
  • 确保该文件夹未处于写保护状态,并且在您尝试移动文件夹时没有进程正在访问任何文件。

  • 同时检查您是否通过验证应用程序池在哪个用户帐户下运行,将安全权限授予正确的用户。

  • 您可能还需要考虑在本地IIS发展,以防止今后发生这种情况(我去过那里,不是很好)

相关问题