1

我们的测试环境中有 SharePoint 2010,使用自定义 STS(联合,所有网站都是基于声明的)。当我们尝试登录该站点时,我们被重定向到 sts 登录页面,我们输入凭据,我们被定向到 siteurl/_trust 并且它在这里停留了很长时间并且超时。在 Windows 应用程序错误中,我们看到:异常类型:TimeoutException 异常消息:对“http://localhost:32843/SecurityTokenServiceApplication/securitytoken.svc”的 HTTP 请求已超过分配的超时 00:00:59.9840000。分配给此操作的时间可能是较长超时的一部分。

另一个错误显示:

尝试颁发安全令牌时发生异常:请求通道在 00:00:59.9843751 之后等待回复时超时。增加传递给 Request 调用的超时值或增加 Binding 上的 SendTimeout 值。分配给此操作的时间可能是较长超时的一部分。

有任何想法吗?

4

2 回答 2

0

当您的应用程序使用 SecurityTokenService 时,Antipod 建议的解决方案确实有效。但是,当它被请求时,例如从搜索应用程序中,它不起作用。例如,核心结果搜索 Web 部件调用调用安全令牌服务的搜索服务应用程序。

在这种情况下,调用 SPSecurityContext.SecurityTokenForContext 方法并请求 SecurityTokenService。在这种情况下,不应用绑定超时,因为 SecurityTokenService WCF 绑定是通过以下方式初始化的:

s_CachedActAsStsBinding = new CustomBinding(bindingElementsInTopDownChannelStackOrder);

其中 bindingElementsInTopDownChannelStackOrder 取自 14\WebClients 文件夹中的配置,但不应用超时参数。

您可以尝试此处建议的解决方案:http ://www.eventid.net/display.asp?eventid=8306&eventno=10757&source=Microsoft-SharePoint%20Products-SharePoint%20Foundatio&phase=1但不幸的是它们对我不起作用。

于 2011-10-25T10:21:19.887 回答
0

SecurityTokenService 是 WCF 服务,您可以像设置任何其他 WCF 服务一样为该服务设置超时。

说到 SharePoint 2010。我发现 14 个 hive 文件夹中有两个文件夹:WebClients 和 WebServices。这些文件夹包含 SecurityToken 子文件夹。

要更改超时,您需要将 receiveTimeout 和 sendTimeout 属性添加到绑定元素中以具有如下内容:

<binding name="spStsBinding" receiveTimeout="00:30:00" sendTimeout="00:30:00">
...
</binding>

我已经为 14\WebClients\SecurityToken\client.config 和 14\WebServices\SecurityToken\web.config 文件中的所有绑定完成了此操作。上述设置将超时设置为 30 分钟。

要编辑服务配置文件,我使用了 VS 2008 中的工具,如下图所示:

在此处输入图像描述

我希望它有所帮助。

于 2011-09-13T11:32:42.767 回答