Фон (перейдите к нижней части, если вам нужен вопрос)
Недавно я обновил репозиторий SVN (размещенный на ассембле) до SVN 1.7.После этого мы стали периодически сталкиваться с множеством File Access Denied
ошибок на страницах сайта ASP.NET, которые находятся в локальной рабочей копии репозитория.
Некоторые папки также начали получать странные разрешения для файлов (онистал помечен только для чтения), и с них удален пользовательский доступ.Эти проблемы могут начаться только после цикла обновления / фиксации через плагин AnkhSVN для Visual Studio, но не всегда;он казался очень темпераментным.
Единственное временное исправление, которое мы до сих пор обнаружили, - это зафиксировать все оставшиеся изменения, удалить локальную копию и повторно получить полную рабочую копию (с TortoiseSVN).Однако это нереальное исправление, и оно серьезно влияет на производительность.
Этот сайт представляет собой ASP.NET WebWorkerRole на основе Azure.До обновления SVN 1.7 проблем не возникало.Я попытался поиграться с внутренними разрешениями IIS, чтобы обойти эту проблему, однако, без кубиков.
Мое окружение
- Visual Studio 2010 Ultimate 10.0.40219.1 SP1
- AnkhSVN 2.3.10509 (последняя версия, поддерживает SVN 1.7.1)
- TortoiseSVN 1.7.1, сборка 22161 - 64-битная
- Запуск в режиме отладки через эмулятор Azureenvironment
Вопрос
Возможно ли для SVN 1.7 или любого другого инструмента в моей среде нарушить права доступа к файлам, чтобы файлы стали непригодными для использования вСайт ASP.NET?и что еще более важно, как я могу это исправить?
Точная ошибка разрешения доступа к файлу:
Доступ к пути '// file //' isотказано.
Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.UnauthorizedAccessException: Доступ к пути '// file //' запрещен.
ASP.NET не авторизован для доступа к запрошенному ресурсу.Рассмотрите возможность предоставления прав доступа к ресурсу для удостоверения запроса ASP.NET.ASP.NET имеет базовый идентификатор процесса (обычно {MACHINE} \ ASPNET в IIS 5 или Network Service в IIS 6 и IIS 7 и настроенный идентификатор пула приложений в IIS 7.5), который используется, если приложение не олицетворяет собой.Если приложение выполняет олицетворение с помощью идентификатора, это будет анонимный пользователь (обычно IUSR_MACHINENAME) или пользователь с проверенным запросом.
Чтобы предоставить ASP.NET доступ к файлу, щелкните файл в проводнике правой кнопкой мыши и выберитеСвойства »и выберите вкладку« Безопасность ».Нажмите «Добавить», чтобы добавить соответствующего пользователя или группу.Выделите учетную запись ASP.NET и установите флажки для нужного доступа.
Но чистая рабочая копия не вызовет этой ошибки.Сравнивая разрешения двух, кажется, что рабочие копии, которые не содержат ошибок, являются общими (с IUSR и локальной учетной записью), в то время как у поврежденных нет общего доступа, но пользователь никогда не изменяет общий доступ.