2011-07-27 82 views
1

我們在我們的測試環境中使用SharePoint 2010,使用自定義STS(聯合,所有站點均基於聲明)工作。 當我們嘗試登錄網站時,我們被重定向到sts登錄頁面,我們放入憑證,我們被引導到siteurl/_trust,並且它在這裏呆了很長時間,並且它超時。 在windows應用程序錯誤中,我們看到: 異常類型:TimeoutException 異常消息:HTTP請求到'http:// localhost:32843/SecurityTokenServiceApplication/securitytoken.svc'已超出分配的超時時間00:00 :59.9840000。分配給此操作的時間可能是超時時間的一部分。SharePoint 2010 SecurityTokenService錯誤

另一個錯誤寫着:試圖發出安全令牌時發生

例外:請求通道超時等待00後答覆:00:59.9843751。增加傳遞給請求調用的超時值或增加綁定上的SendTimeout值。分配給此操作的時間可能是更長時間的一部分。

任何想法?

+0

所有的組件(WFE,應用服務器,數據庫,STS WCF服務等)在同一臺機器上?也許你需要將服務引用從localhost更改爲服務所在的服務器名稱。 –

回答

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個\ Web客戶所有綁定\ SecurityToken \ client.config和14 \ WebServices \ SecurityToken \ web.config文件。上面的設置將超時設置爲30分鐘。

編輯我已經使用了從2008年VS在下面的屏幕截圖顯示的工具的服務配置文件:

enter image description here

我希望它能幫助。

0

Antipod建議的解決方案在您的應用程序使用SecurityTokenService時工作。但是,它在要求時不起作用,例如,從搜索應用程序。例如,核心結果搜索Web部件調用搜索服務應用程序,它調用安全令牌服務。

在這種情況下調用SPSecurityContext.SecurityTokenForContext方法,它會請求SecurityTokenService。在這種情況下不應用結合超時因爲SecurityTokenService WCF結合在按照以下方式被初始化:

s_CachedActAsStsBinding = new CustomBinding(bindingElementsInTopDownChannelStackOrder); 

其中bindingElementsInTopDownChannelStackOrder從配置採取14個\ Web客戶文件夾,但不應用於超時參數。

你可以嘗試這裏建議的解決方案:http://www.eventid.net/display.asp?eventid=8306&eventno=10757&source=Microsoft-SharePoint%20Products-SharePoint%20Foundatio&phase=1但不幸的是,他們沒有爲我工作。