【问题标题】:Accessing Active Directory in ASP.net locally works fine. After deploying the same code on server gives Authorization-errors在本地访问 ASP.net 中的 Active Directory 工作正常。在服务器上部署相同的代码后会出现授权错误
【发布时间】:2011-08-19 04:10:26
【问题描述】:

我目前正在开发一个 ASP.net 应用程序。在本地主机上,我可以在调用 AuthorizationGroups 时访问 Active Directory。 将 ASP.net 应用程序发布到服务器后,我无法访问 Active Directory。我需要知道为什么这会发生在服务器上,当它在本地工作正常时?我需要导入特殊的 DLL 吗?

如前所述,我尝试从 ActiveDirectory 获取 AuthorizationGroups,我从服务器收到以下消息。

-尝试检索授权组时,出现错误 (5) 发生了。

【问题讨论】:

标签: asp.net iis localhost


【解决方案1】:

考虑在开发期间使用IIS Express,以便您的开发网络服务器更接近生产环境。

【讨论】:

  • 我会更进一步,只使用 IIS。
【解决方案2】:

您引用的错误消息听起来很像防火墙问题

能否关闭服务器上的 Windows 防火墙,看看是否出现错误?如果是这样,您必须打开一些端口才能访问AD

但我同意 Oded 的评论,有很多可能性,看到不同的行为你不应该感到惊讶 - Windows 服务器/桌面配置的差异,以及安全性、防火墙配置、ACL、缺少的组件 - 列表还在继续.

【讨论】:

    【解决方案3】:

    说真的,这是完整的错误信息吗?

    您需要记录错误,即使这是在未经处理的异常上发生的默认设置,您可以检查事件查看器。

    所以我的回答是,您必须学习如何诊断您网站中的任何类型的错误。如果你没有为此做好准备,那么当你不是那个错误的人时,这将意味着以后的麻烦。

    至于具体的错误,如果没有堆栈跟踪,我们将无法比 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

    【讨论】:

      【解决方案4】:

      错误可能在您的 web.config 文件中 和 IIS 上的部署设置

      【讨论】:

        【解决方案5】:

        可能有很多原因:

        • IIS 配置错误
        • IIS 运行不同的 .NET 版本
        • 您的应用程序配置错误
        • 您的应用程序与您的 IIS(路径、库等)缺乏兼容性
        • 某些东西(可能是 Windows)坏了

        您指定的错误可能来自:

        • ActiveDirectory 未能及时回复
        • 您的应用程序通常无法连接到 ActiveDirectory
        • 东西坏了

        谷歌搜索错误号 (5) 可能会有所帮助。

        【讨论】:

          【解决方案6】:

          可能是用户上下文问题。在本地运行时,Web 服务器以登录用户身份运行。在 IIS 上运行时,该服务可能作为本地系统帐户运行,该帐户没有网络访问权限来访问 AD。您可以将用户更改为网络服务,这将使 IIS 服务器可以访问 AD。

          【讨论】:

          【解决方案7】:

          听起来两者之间的唯一区别是运行应用程序的用户帐户的安全权限。

          作为本地用户,您通常有权绑定 Active Directory。默认情况下,IIS 使用没有网络访问权限的帐户为网站运行应用程序池。这会阻止您连接到 Active Directory 服务器。

          如果您将该应用程序池更改为作为网络服务运行,您可能会遇到用户帐户无权连接到 Active Directory 的错误。

          【讨论】:

            【解决方案8】:

            为什么事情在本地工作,但在部署时不工作的原因有很多。

            • IMO,第一个区别是权限级别 - 正如其他人指出的那样,您在访问资源(例如活动目录)时可能必须正确提升权限,或者您可能必须更改您的 asp. net 应用程序正在服务器上运行。
            • 它可能不起作用的第二个原因是,您的代码中可能有基于本地 URI 的绝对 URI,或者您可能有在服务器环境中没有多大意义的相对 URI(不同深度文件夹结构等)
            • 有时,您正在开发较新的框架版本,而该版本在服务器上不可用。
            • 有时您可能安装了一些您正在使用的第三方框架,这些框架未部署在服务器上。

            大多数情况下,原因是上述之一。

            【讨论】:

              【解决方案9】:

              最大的不同是 开发服务器在上下文中运行 登录用户,通常是本地用户 管理员帐户和 IIS 在 ASP.NET 进程的上下文 帐户。检查权限。和 日志。

              阅读这篇文章一定会对你有所帮助

              Core Differences Between IIS and the ASP.NET Development Server

              【讨论】:

                猜你喜欢
                • 2018-10-22
                • 1970-01-01
                • 1970-01-01
                • 2011-08-26
                • 1970-01-01
                • 2017-01-25
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多