1

它很复杂,我将尝试在这里描述它。

  1. 如果用户和他的组对 SP 站点上的任何内容都没有访问权限,则用户将在登录时获得正确的“错误:拒绝访问”SharePoint 页面。
  2. 如果用户可以通过他的组成员身份访问某些东西,那么 a. 如果用户列在“所有人”列表中,则用户可以毫无问题地登录和使用该站点。湾。如果用户未在所有人列表中列出,则用户将获得 IIS 403 错误页面。回到服务器上,将出现“服务应用程序池'[IIS 应用程序池名称]'的进程与万维网发布服务发生致命通信错误”事件,这表明 IIS 应用程序池发生崩溃。如果用户热衷并不断尝试,他可能会频繁崩溃应用程序池,最终导致应用程序池停止,应用程序宕机!!!

我们正在使用表单身份验证和 Asp.net 成员提供程序和角色提供程序。看来,当 2b 发生时,SP 反复(应该只有一次)调用会员提供程序 GetUser 方法(直到出现致命的通信错误,我猜)。我相信它是用于 initila 用户配置文件导入的。发生 2a 时,不会调用 GetUser 方法。

我们可以手动执行一些操作,例如将用户添加到访客组,然后将用户从访客组中取出,这会将用户添加到所有人列表中,以便他能够登录。在手动过程中,成员资格提供程序 GetUesr 也被调用,但只调用一次并且工作正常。

这个问题最近才开始出现,并且只在一个环境中(生产!)。一切都很好,其他环境 UAT 和培训环境都没有这个问题。我们已经比较了环境并检查了所有明显的情况,找不到任何可能导致这种情况的差异。该产品有大约 110 个用户,比其他环境多,但仍然不多。

有人可以帮忙吗?

4

2 回答 2

0

Cause of the problem found. The advanced setting on All People list has got Item Level Edit permission set to none.

于 2009-06-23T04:39:12.903 回答
0

根据下面的评论,在调用 Web 服务之后,GetUser 的自定义实现中似乎发生了错误。它也只发生在拥有最多数据的环境中。

因此,接下来要检查的是调用 Web 服务和返回 getuser 之间的代码。你有设置最大长度的数组吗?您是否对数组中的特定项目包含哪些数据做出任何假设?您如何检查/记录 Web 服务是否返回有效结果?

希望这可以帮助

设拉子

于 2009-06-19T03:00:11.297 回答