Silverlight 超時問題

網上有很多網友提問超時的問題,,,也有很多網友回答,,,但是很官方,,,

我也是網上提問的silverlight菜鳥之一,,,這個問題後來算是解決了,,,

在此留個腳印,希望對有同樣疑問的人有所幫助。。。

先介紹一下我的開發環境,,,Silverlight 4 + DomainService(WCF RIA,不是WCF)

(網上的回答大多基於WCF的方式,和WCF RIA二者還是有區別的,但這種區別大多被回答者自動忽視)

1、一般解決的方法是去修改OpenTimeout,ReceiveTimeout,SendTimeout,CloseTimeout

     Public Sub ChangeWcfSendTimeout(ByVal context As DomainContext, ByVal Timeout As TimeSpan)
        Dim channelFactoryProperty As PropertyInfo = context.DomainClient.GetType().GetProperty("ChannelFactory")
        If channelFactoryProperty Is Nothing Then
            Throw New InvalidOperationException(
              "There is no 'ChannelFactory' property on the DomainClient.")
        End If
        Dim factory As ChannelFactory = CType(channelFactoryProperty.GetValue(context.DomainClient, Nothing), ChannelFactory)

        factory.Endpoint.Binding.OpenTimeout = Timeout
        factory.Endpoint.Binding.ReceiveTimeout = Timeout
        factory.Endpoint.Binding.SendTimeout = Timeout
        factory.Endpoint.Binding.CloseTimeout = Timeout

  End Sub

2、還有一種超時問題,上面的方法不能解決。

  應用場景是:SL調用存儲過程返回一個Entity,返回的數據量不大,問題在於這個存儲過程執行需要時間,必須要修改 TransactionTimeOut

  <serviceBehaviors>
    <serviceTimeouts transactionTimeout="00:06:00"/>
  <serviceBehaviors>

3、相關上面的場景,存儲過程執行的時候,也有一個設定超時的屬性,在少數情況下也會導致超時

  'Initializes a new FPDB object Inherits ObjectContext using the connection string

  Public Sub New()
        MyBase.New("name=FPDBConn", "FPDBConn")
        MyBase.ContextOptions.LazyLoadingEnabled = True
        Me.CommandTimeout = 360
        OnContextCreated() 
      End Sub

 

4、還有一種僞超時,因爲後來證明,並不是超時問題,而是SL的序列化的size是有限制的

  應用場景:有一個應用依據選擇的日期,去數據庫讀數據,當日期範圍不大,返回的數據量比較少時,沒有問題。

         當選擇的日期範圍比較大,返回的數據超過臨界值時,就會報Not found錯誤

      <behavior>
           <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
      </behavior>
4、沒有了,如果還有問題可以和我聯繫,一起探討

  在此也送上一句官方回答:超時引起的原因有很多種,建議你打開WCF log以及使用fiddler監視網絡

原文網地址 http://www.cnblogs.com/youfan/archive/2011/06/09/2076094.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章