Доступ к Active Directory в ASP.net локально работает нормально. После развертывания того же кода на сервере выдается Авторизация-ошибки - PullRequest
5 голосов
/ 05 мая 2011

В настоящее время я разрабатываю приложение ASP.net. На локальном хосте я могу получить доступ к Active Directory при вызове AuthorizationGroups. После публикации приложения ASP.net на сервере я не могу получить доступ к Active Directory. Мне нужно знать, почему это происходит на сервере, когда локально это работало нормально? Нужно ли импортировать специальные библиотеки DLL?

Как я уже сказал, я пытаюсь получить AuthorizationGroups из ActiveDirectory, я получаю следующее сообщение от сервера.

-При попытке получить группы авторизации произошла ошибка (5) произошло.

Ответы [ 9 ]

5 голосов
/ 11 мая 2011

Серьезно, это полная информация об ошибке?

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

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

Что касается конкретной ошибки, без трассировки стека мы не сможем посоветовать вам больше, чем Google. Существует не один сценарий, где вы можете получить эту ошибку, проверьте первые несколько записей в Google, чтобы понять, что я имею в виду: http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=While+trying+to+retrieve+the+authorization+groups%2C+an+error+(5)+occurred

1 голос
/ 14 мая 2011

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

Как локальный пользователь, у вас обычно будет доступ к привязке к Active Directory. По умолчанию IIS запускает пул приложений для веб-сайта, используя учетную запись без доступа к сети. Это не позволит вам подключиться к серверу Active Directory.

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

1 голос
/ 13 мая 2011

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

1 голос
/ 12 мая 2011

Причин может быть много:

  • IIS был неправильно настроен
  • IIS использует другую версию .NET
  • Ваше приложение было неправильно настроено
  • Вашему приложению не хватает совместимости с IIS (пути, библиотеки, ...)
  • Что-то (вероятно, Windows) сломано

Указанная вами ошибка может исходить из:

  • ActiveDirectory не может ответить в течение времени
  • Ваше приложение обычно не может подключиться к ActiveDirectory
  • Что-то сломано

Поиск номера ошибки (5) может помочь.

1 голос
/ 09 мая 2011

Сообщение об ошибке, которое вы цитируете, очень похоже на проблему с брандмауэром

Можете ли вы отключить брандмауэр Windows на сервере и посмотреть, нет ли ошибки? Если это так, вам нужно открыть несколько портов для доступа к AD

Но я согласен с комментарием Одеда, что есть много возможностей, и вы не должны удивляться, увидев другое поведение - различие в конфигурации сервера / рабочего стола Windows, а также безопасности, конфигурации брандмауэра, списков ACL, отсутствующих компонентов - список можно продолжить .

0 голосов
/ 16 мая 2011

Самое большое отличие состоит в том, что сервер разработки работает в контексте вошедшего в систему пользователя, обычно это локальная учетная запись администратора, а IIS запускается в контексте учетной записи процесса ASP.NET.Проверьте разрешения.И журналы.

и прохождение этой статьи, безусловно, помогут вам

Основные различия между IIS и сервером разработки ASP.NET

0 голосов
/ 16 мая 2011

Есть много причин, почему все работает локально, но не развернуто.

  • ИМО, различие номер один - это уровни разрешений - как уже отмечали другие, вам может потребоваться должным образом повысить разрешения при доступе к ресурсам (например, к активному каталогу), или вам, возможно, придется изменить учетную запись, под которой работает ваш asp. На сервере запущено сетевое приложение.
  • Вторая причина, по которой это может не работать, заключается в том, что в вашем коде могут быть абсолютные URI, основанные на ваших локальных URI, или у вас могут быть относительные URI, которые не имеют большого смысла в серверной среде (разной глубины). структуры папок и т. д.)
  • Иногда вы разрабатываете более новую версию фреймворка, которая недоступна на сервере.
  • И иногда вы можете установить некоторые сторонние фреймворки, которые вы используете, которые не развернуты на сервере.

Чаще всего причина в том или ином из вышеперечисленных.

0 голосов
/ 12 мая 2011

ошибка может быть в вашем файле web.config и настройки развертывания на IIS

0 голосов
/ 05 мая 2011

Подумайте об использовании IIS Express во время разработки, чтобы ваш веб-сервер разработки более точно соответствовал производственным средам.

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