IIS - необходимые разрешения не могут быть получены. Включено «Полное доверие» и загрузка профиля пользователя в пул приложений «True» - PullRequest
3 голосов
/ 10 июня 2011

Настройка

В пуле приложений .NET 2.0 на сервере-A запущено приложение IIS 6.IIS 7 Server-B должен размещать ту же базу кода под другим URL.Я создал виртуальный каталог на веб-сайте Server-B для сетевого пути приложения на Server-A.Я включил этот виртуальный каталог на сервере B в качестве приложения, работающего в собственном пуле приложений .NET 2.0 в классическом режиме.Оба пула приложений работают под одной и той же учетной записью домена, которая имеет доступ к этой папке.

Issue

При доступе к сайту с сервера-A он работает нормально.Однако при обращении к нему с сервера B возникает печально известная ошибка « Необходимые разрешения не может быть получена. ».

Я пытался найти решение этой проблемы в течение двух дней.Два наиболее распространенных решения состояли в том, чтобы проверить уровень доверия CLR на сервере-B или установить для свойства «Загрузить профиль пользователя» в пуле приложений значение «True».Поскольку у меня есть полные права администратора, я установил уровень доверия «Полный» и установил для профиля «True».Строго называть все сборки приложения и бросать их в GAC - это не то место, куда я хочу.

Я уверен, что где-то не хватает какой-то конфигурации.Есть идеи?Спасибо.

Ответы [ 4 ]

1 голос
/ 10 июня 2011

Однажды у нас была похожая проблема.

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

В качестве теста попытайтесь установить идентичность пула приложений для учетной записи администратора, которую вы используете для входа.

0 голосов
/ 23 сентября 2013

Я бы установил этот атрибут идентификации пулов приложений (в дополнительных настройках) как администратор. Таким образом, ваше приложение будет работать на сервере, так же, как оно работает при локальной настройке.

0 голосов
/ 29 апреля 2013

в моем случае мой пул приложений IIS имел LoadUserProfile = false, поэтому он не загружал профиль идентификатора пула приложений (учетная запись домена).Это привело к невозможности получения разрешений, даже если мои файлы / папки Webroot (включая / bin) имели правильные разрешения.Установка LoadUserProfile = true исправила проблему для моей настройки.

0 голосов
/ 10 июня 2011

Вручную убедитесь, что пользователь может получить доступ к этой папке. Попробуйте войти в Windows от имени этого пользователя, а затем получить доступ к этому общему ресурсу (или имитировать его с помощью чего-то вроде «runas / User: {Domain \ UserName} net use {\ server \ share}»).

Также попробуйте загрузить ShareMonitor везде, где файлы действительно живут. Он должен сказать вам, какая учетная запись пользователя пытается получить доступ к данной акции. Это может быть не та учетная запись, о которой вы думаете. Я не могу вспомнить, была ли это эта программа или нет, но в прошлом я использовал нечто очень похожее, чтобы выяснить действительно странную проблему с разрешениями.

Это должно определить, если это проблема доступа к файлу. Если это не так, то все, что я могу сказать, это убедиться, что у вас включен ASP.NET (для Windows Server это отдельная опция).

Также проверьте права доступа к файлам в вашем каталоге «Temporary ASP.NET Files». Я должен был явно добавить пользователям доступ для записи, прежде чем все заработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...