Ошибка SharePoint 2010 SecurityTokenService - PullRequest
1 голос
/ 27 июля 2011

В нашей тестовой среде есть SharePoint 2010, работающий с пользовательской службой STS (федерация, и все сайты основаны на утверждениях). Когда мы пытаемся войти на сайт, мы перенаправляемся на страницу входа в систему sts, вводим учетные данные, нас перенаправляют на siteurl / _trust, и он остается здесь долгое время и время его ожидания истекает. В ошибке приложения Windows это то, что мы видим: Тип исключения: TimeoutException Сообщение об исключении: HTTP-запрос к 'http://localhost:32843/SecurityTokenServiceApplication/securitytoken.svc' превысил установленное время ожидания 00: 00: 59.9840000. Время, отведенное для этой операции, могло быть частью более длительного времени ожидания.

Другая ошибка гласит:

Возникла исключительная ситуация при попытке выдать токен безопасности: истекло время ожидания канала запроса в ожидании ответа после 00: 00: 59.9843751. Увеличьте значение тайм-аута, передаваемое вызову Request, или увеличьте значение SendTimeout в Binding. Время, отведенное для этой операции, могло быть частью более длительного времени ожидания.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Решение, предлагаемое Antipod, работает, когда SecurityTokenService используется вашим приложением.Однако он не работает, когда его запрашивают, например, из приложения поиска.Например, веб-часть поиска основных результатов вызывает приложение службы поиска, которое вызывает службу маркеров безопасности.

В этом случае вызывается метод SPSecurityContext.SecurityTokenForContext, который запрашивает SecurityTokenService.В этом случае время ожидания привязки не применяется, поскольку привязка WCF SecurityTokenService инициализируется следующим образом:

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 но, к сожалению, они не сработали для меня.

0 голосов
/ 13 сентября 2011

SecurityTokenService - это служба WCF, и вы можете установить тайм-ауты для службы, как и для любой другой службы WCF.

Говоря о SharePoint 2010. Я обнаружил, что в папке 14 кустов есть две папки: 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, показанный на следующем снимке экрана:

enter image description here

Надеюсь, это поможет.

...