Содержимое динамического представления ClearCase не отображается для веб-приложения ASP.NET

Я запускаю приложение asp.net (VS2008 / .net 3.5), и при запуске его под VS при отладке больше работает нормально.

Он успешно читает файлы и каталоги из общего сетевого ресурса.

Я могу запустить «cleartool startview [имя динамического представления]», хорошо, я могу с радостью выполнить команду «cleartool mount [vob]».

Но если я попытаюсь проверить наличие файла в vob, он его не увидит.

Итак, я попробовал что-то другое, теперь я запускаю «cleartool ls -short -vob_only [имя_файла]», чтобы проверить наличие.

Для обоих он отлично работает под VS2008, но не будет работать при запуске под IIS после развертывания.

У меня есть набор, и у пользователя есть действующий доступ к ClearCase.

Любые идеи?


person Alan Mullett    schedule 04.08.2009    source источник


Ответы (2)


Если вы используете встроенный веб-сервер (Cassini) во время разработки, веб-сервер работает от вашего имени и имеет доступ к вашим сетевым дискам и т. Д. IIS, с другой стороны, использует другую учетную запись пользователя и не передает ваш профиль пользователя, включая ваши представления ClearCase и т.д. Это может объяснить ваши проблемы.

person Martin Liversage    schedule 04.08.2009
comment
Это то, о чем я подумал сначала - но у меня есть доступ к сетевым дискам, доступ к которым возможен только через учетную запись домена, защищенную с помощью тех же групп, что и ClearCase VOB. Таким образом, похоже, что ClearCase имеет дополнительные требования помимо общих требований Windows. - person Alan Mullett; 04.08.2009
comment
Если я вас правильно понял, у вас есть приложение ASP.NET, которое обращается к динамическим представлениям ClearCase, которые сопоставлены с буквами сетевых дисков. Поскольку IIS работает от имени другого пользователя, он не видит этих букв сетевых драйверов. Учетная запись пользователя IIS может иметь доступ к VOB, но сопоставления, которые вы видите при входе в систему, не видны IIS. - person Martin Liversage; 04.08.2009

Я нашел проблему и ее решение. Проблема в том, что ClearCase использует пользователя процесса для аутентификации, тогда как доступ к общему диску, упомянутый в исходном вопросе, использует пользователя потока.

Причина этого в том, что при доступе к ClearCase он порождает новый процесс, а дочерние процессы всегда используют контекст безопасности родительского процесса, а не текущий поток.

Для решения этой проблемы нужно было запустить веб-приложение в собственном пуле приложений, которое выполняется как пользователь с правами доступа к ClearCase. Раздувание прав сверх того, что должно быть действительно необходимо, однако это помогло.

person Alan Mullett    schedule 07.01.2011