Веб-приложение работает на локальном хосте, но не работает при удаленном подключении - PullRequest
3 голосов
/ 25 октября 2011

У нас есть новое веб-приложение ASP.NET, которое мы развертываем и которое использует отдельную библиотеку DLL, которую мы также создали, которая, в свою очередь, запрашивает Active Directory для получения простой информации о членстве пользователя и группы.Сервер Windows Server 2003.

Приложение работает нормально, если я перевожу RDP на сервер и просматриваю его под localhost .

Приложение выдает следующую ошибкукогда я смотрю на него с отдельного ПК .Он также выдает ту же ошибку, если я просматриваю его из сеанса RDP на сервере, но просматриваю его под именем сервера.

Это проблема безопасности доступа к коду?Другие идеи?

Сведения об исключении: System.Runtime.InteropServices.COMException: Произошла ошибка операций.

Ошибка источника: Произошло необработанное исключениегенерируется во время выполнения текущего веб-запроса.Информация о происхождении и местонахождении исключения может быть идентифицирована с помощью приведенной ниже трассировки стека исключений.

Трассировка стека: [COMException (0x80072020): Произошла ошибка операций.]

   System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +420085
   System.DirectoryServices.DirectoryEntry.Bind() +36
   System.DirectoryServices.DirectoryEntry.get_Name() +32
   USM.UsmAD.get_DomainName() in C:\DevWork\Repo_CP\UnifiedSecurity\BRANCHES\LoginVsGUID\Applications\Active Directory Search\USMAD\USMAD\UsmAD.cs:60
   USM.UsmAD.Get_UserGroupNames(String username) in C:\DevWork\Repo_CP\UnifiedSecurity\BRANCHES\LoginVsGUID\Applications\Active Directory Search\USMAD\USMAD\UsmAD.cs:190
   AdminWeb.CheckAccessDAL.GetGroupNames() in C:\DevWork\Repo_CP\UnifiedSecurity\BRANCHES\LoginVsGUID\Applications\AdminWeb\USMDAL\CheckAccessDAL.cs:28
   AdminWeb.CheckAccessDAL.SetMenuAccess(Menu mnuUSMAdmin) in C:\DevWork\Repo_CP\UnifiedSecurity\BRANCHES\LoginVsGUID\Applications\AdminWeb\USMDAL\CheckAccessDAL.cs:89
   AdminWeb.SiteMaster.TrimMainMenus() in C:\DevWork\Repo_CP\UnifiedSecurity\BRANCHES\LoginVsGUID\Applications\AdminWeb\AdminWeb\Site.Master.cs:50
   AdminWeb.SiteMaster.Page_Load(Object sender, EventArgs e) in C:\DevWork\Repo_CP\UnifiedSecurity\BRANCHES\LoginVsGUID\Applications\AdminWeb\AdminWeb\Site.Master.cs:17
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

звучит как проблема с разрешением на dll

попробуйте разрешить IUSR доступ к этому файлу ....

0 голосов
/ 25 октября 2011

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

Укажите идентификатор для пула приложений (IIS 7)

Настройка удостоверения пула приложений с IIS 6.0 (IIS 6.0)

Вот статья, если вам нужно сделать это во время выполнения:

Как: использовать олицетворение и делегирование в ASP.NET 2.0

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

...