#asp.net #iis
#asp.net #iis
Вопрос:
Настройка
В пуле приложений .NET 2.0 на сервере-A. Запущено приложение IIS 6. IIS 7 Server-B должен размещать ту же кодовую базу под другим URL. Я создал виртуальный каталог под веб-сайтом Server-B по сетевому пути приложения на сервере-A. Я включил этот виртуальный каталог на сервере B как приложение, работающее в собственном пуле приложений .NET 2.0 в классическом режиме. Оба пула приложений выполняются от имени одной учетной записи домена, которая имеет доступ к этой папке.
Проблема
При доступе к сайту с сервера-A все работает нормально. Однако доступ к нему с сервера-B генерирует печально известное «Требуемые разрешения не могут быть получены.» ошибка.
Я пытался найти решение этой проблемы в течение двух дней. Двумя наиболее распространенными решениями были проверка уровня доверия CLR на сервере-B или установка для свойства Load User Profile в пуле приложений значения «True». Поскольку у меня есть полные права администратора, я устанавливаю уровень доверия на полный и устанавливаю для профиля значение «True». Строгое присвоение имен всем сборкам приложения и добавление их в GAC — это не то, к чему я хочу обратиться.
Я уверен, что мне просто где-то не хватает какой-то конфигурации. Есть идеи? Спасибо.
Комментарии:
1. Я боролся с этим в течение последних двух недель. Так и не найдено решение. Изменены сценарии развертывания для копирования обновленного кода в оба расположения.
Ответ №1:
У нас однажды была похожая проблема.
В нашем случае пользователь, который был идентификатором пула приложений, никогда не входил в систему на сервере. Следовательно, не было профиля локального пользователя, поэтому возникла проблема, когда система попыталась использовать профиль.
В качестве теста попробуйте установить идентификатор пула приложений для учетной записи администратора, которую вы используете для входа в систему.
Комментарии:
1. Безуспешно пытался войти в систему как пользователь пула приложений. Вызов MSDN, вот я и пришел.
Ответ №2:
Вручную убедитесь, что пользователь может получить доступ к этому общему ресурсу. Попробуйте войти в Windows как этот пользователь, а затем получить доступ к этому общему ресурсу (или подделать его чем-то вроде «runas / User:{Domain UserName} net use { server share}»).
Также попробуйте загрузить ShareMonitor везде, где действительно находятся файлы. Он должен сообщить вам, какая учетная запись пользователя пытается получить доступ к данному общему ресурсу. Возможно, это не та учетная запись, о которой вы думаете. Я не могу вспомнить, была ли это эта программа или нет, но я использовал что-то очень похожее в прошлом, чтобы выяснить действительно странную проблему с разрешениями.
Это должно определить, является ли проблема с доступом к файлам. Если это не так, то все, что я могу сказать, это убедиться, что у вас есть ASP.NET включено (на сервере Windows это отдельная опция).
Также проверьте права доступа к файлам на вашем «Временном ASP.NET Каталог «Файлы». Мне пришлось явно добавить пользователям доступ на запись к этому раньше, чтобы все заработало.
Комментарии:
1. В обоих полях учетная запись домена пула приложений была назначена администратором сервера. Авторизовался в обоих окнах и просматривал файлы обоими способами. Нет кубиков. Как я уже говорил выше, время вызова MSDN.
2. Кстати, для
net use
инструкции вы можете использоватьnet use \servershare /user:domainusername
, а не вызыватьrunas
: o)
Ответ №3:
в моем случае в моем пуле приложений IIS было LoadUserProfile = false, поэтому он не загружал профиль идентификатора пула приложений (учетная запись домена). Это привело к невозможности получения разрешений, хотя мои файлы / папки Webroot (включая / bin) имели правильные разрешения. Установка LoadUserProfile = true устранила проблему в моей настройке.
Ответ №4:
Я бы установил этот атрибут идентификации пулов приложений (в дополнительных настройках) в качестве администратора. Таким образом, ваше приложение будет работать на сервере точно так же, как оно работает в локальной установке.