2010-03-14 110 views
0

我在我的服務配置和消息安全中使用wshttpbinding。我的應用程序工作正常,但在客戶端調用任何服務方法後10或20分鐘後,將引發異常,因爲我的安全令牌將過期,並且連接無法工作。WCF過期令牌?

一種解決方案是重新創建連接以創建新令牌(但由於我的服務包含datacontext,並且如果我重新創建服務,datacontext將會是新的,所以我不能使用它)。

其他解決方案是將安全類型從消息更改爲傳輸(我試過這種解決方案,但沒有更改,因爲引發了另一個異常)。

+0

你能不能確保你的DataContext是一個新的連接時,每次不能重現? – 2010-03-14 09:51:39

+0

謝謝 對於Ur的回覆 是的 - 我敢肯定因爲我的高級開發框架 和他說每次做一個新的連接(WCF服務)datacontext將更新! 所以我不能重新創建連接 – Rev 2010-03-15 07:56:13

回答

0

我假設,當你說datacontext你的意思是Enitity Framework datacontext。

您的解決方案似乎取決於客戶端返回時可用的datacontext。這是一個非常脆弱的方法。即使您增加了所有相關的超時時間,但如果服務器重新啓動,您仍然會收到錯誤。

看看WCF數據服務http://msdn.microsoft.com/en-us/data/bb931106.aspx

0

最好的辦法是請重新創建在每個調用服務方法的連接。 但在我的立場我不能使用,因爲我們的框架提供特殊問題。 即使我的特別問題,我使用的解決方案通過特招;)

我做了一個方法的返回true.and我稱之爲後10分鐘最後call.This使業務令牌,永不過期,直到應用程序關閉。 最後使用Try-Catch並處理異常拋出服務。

與「西拉Bhaiji」特別感謝