Web App适用于localhost,但在远程连接时失败

时间:2011-10-25 17:48:37

标签: asp.net active-directory code-access-security

我们正在部署一个新的ASP.NET Web应用程序,它使用我们也构建的单独的DLL,它反过来询问Active Directory以获取简单的用户和组成员身份信息。服务器是Windows Server 2003。

如果我RDP到服务器并在localhost下浏览,应用程序可以正常工作。

当我从单独的PC浏览时,应用程序会引发以下错误。如果我从服务器上的RDP会话浏览它,它也会抛出相同的错误,但是在服务器名称下浏览它。

这是代码访问安全问题吗?其他想法?

异常详细信息: System.Runtime.InteropServices.COMException:发生操作错误。

来源错误: 在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈跟踪: [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 :(得分:0)

您可能需要在域级别标识下运行您的应用池,该级别标识有权访问与Active Directory通信所需的资源。

Specify an Identity for an Application Pool (IIS 7)

Configuring Application Pool Identity with IIS 6.0 (IIS 6.0)

如果您需要在运行时执行此操作,请参阅以下文章:

How To: Use Impersonation and Delegation in ASP.NET 2.0

我还鼓励您实现UnhandledException处理程序来记录这些运行时错误。

答案 1 :(得分:0)

听起来像dll上的烫发问题

尝试允许IUSR访问此文件....