在本地访问ASP.net中的Active Directory工作正常。在服务器上部署相同的代码后,会发出授权错误

时间:2011-05-05 08:19:13

标签: asp.net iis localhost

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

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

  

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

9 个答案:

答案 0 :(得分:5)

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

您需要记录错误,即使这是在无法处理的异常中发生的默认值,您也可以检查事件查看器。

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

至于具体的错误,没有堆栈跟踪,我们将无法再向谷歌提供建议。您不仅可以获得该错误的一种情况,请查看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 :(得分:1)

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

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

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

答案 2 :(得分:1)

可能有很多原因:

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

您指定的错误可能来自:

  • ActiveDirectory无法在时间内回复
  • 您的应用程序通常无法连接到ActiveDirectory
  • 有些东西坏了

通过Google搜索错误编号(5)可能有所帮助。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

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

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

答案 5 :(得分:0)

请考虑在开发过程中使用IIS Express,以便您的开发Web服务器更贴近生产环境。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

有很多原因导致事情在本地工作,但没有部署。

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

最常见的原因是上述原因中的一个。

答案 8 :(得分:0)

  

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

通过本文肯定会帮助你

Core Differences Between IIS and the ASP.NET Development Server