Directory.Move () работает в режиме отладки, но не при развертывании - PullRequest
2 голосов
/ 20 августа 2010

У меня есть веб-приложение, которое имеет доступ на чтение / запись / выполнение к каталогу с псевдонимами.Когда я нахожусь в режиме отладки в Visual Studio, работает следующий оператор:

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

Чистый результат заключается в том, что oldDirectory теперь newDirectory в каталоге с псевдонимами.1008 * Но , когда я тестирую этот код на этапе подготовки, у меня есть oldDirectory и newDirectory в каталоге с псевдонимами.Directory.Move теперь ведет себя так, как будто он только копирует oldDirectory в newDirectory.

Почему это происходит?

Ответы [ 3 ]

3 голосов
/ 20 августа 2010

Скорее всего, это проблема с разрешениями.

У учетной записи пользователя, которая выполняет эту команду, вероятно, есть разрешения на создание / запись, но не на удаление разрешений в каталоге с псевдонимами.Я бы проверил, есть ли у учетной записи пользователя, под которой выполняется программа, разрешения Удалить / Удалить подпапки и файлы.

Изменить:

Чтобы проверить эту теорию, я временнопредоставьте группе «Пользователи» полный контроль над папкой, чтобы проверить, исчезла ли проблема.

0 голосов
/ 28 декабря 2010

Я считаю, что вместо Directory (что является статическим) я использовал DirectoryInfo, что решило мою проблему. Я думаю, что суть проблемы заключалась в том, что Directory выполняет больше проверок безопасности, чем экземпляр DirectoryInfo. Мне до сих пор неясно, почему это так, но, похоже, это сработало.

0 голосов
/ 20 августа 2010
  • Убедитесь, что папка не защищена от записи, и ни один процесс не обращается к файлам в момент, когда вы пытаетесь переместить папку.

  • Такжепроверьте, предоставили ли вы разрешения безопасности нужному пользователю, проверив, под какой учетной записью пользователя запущен пул приложений.

  • Возможно, вы также захотите рассмотреть возможность разработки на локальном IIS для предотвращения таких ситуацийв будущем (я был там; не приятно)

...