SORU
5 EKİM 2009, PAZARTESİ


Zaman aşımı süresini artırmak için nasıl Hizmet XML,?

Aptalca bir soru gibi gelebilir ama XML her şeyi çok asmx daha karmaşık gibi görünebilir, nasıl svc bir hizmetin zaman aşımı süresini arttırabilir miyim?

Şu ana kadar öğrendiklerimi burada

<bindings>
      <basicHttpBinding>
        <binding name="IncreasedTimeout" 
          openTimeout="12:00:00" 
          receiveTimeout="12:00:00" closeTimeout="12:00:00"
          sendTimeout="12:00:00">
        </binding>
      </basicHttpBinding>
</bindings>

Ve benim son nokta böyle eşlenen alır:

<endpoint address="" 
  binding="basicHttpBinding" bindingConfiguration="IncreasedTimeout"
             contract="ServiceLibrary.IDownloads">
             <identity>
                <dns value="localhost" />
             </identity>
          </endpoint>

Tam bir hata ben alıyorum:

İstek kanal 00:00:59.9990000 sonra bir yanıt beklerken zaman aşımına uğradı. Zaman aşımı değerini veya Bağlama üzerinde SendTimeout değeri İsteği artırmak için aramak geçti artırmak. Bu işlem için ayrılan uzun bir süre bir kısmı olabilir.

XML Test İstemci, hizmet, çalıştırma yapılandırma içeren bir yapılandırma simgesi vardır:

Onun için ayarladım aynı değerleri değil gördüğünüz gibi? Neyi yanlış yapıyorum?

<bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IDownloads" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="None">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="">
                            <extendedProtectionPolicy policyEnforcement="Never" />
                        </transport>
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>

CEVAP
5 EKİM 2009, PAZARTESİ


Bağlama yapılandırma, dört zaman aşımı değerleri değiştirebilirsiniz:

<bindings>
  <basicHttpBinding>
    <binding name="IncreasedTimeout"
             sendTimeout="00:25:00">
    </binding>
  </basicHttpBinding>

En önemlisi, ne kadar istemci XML hizmetin bir yanıt bekleyin diyor sendTimeout,. Ayarlarınızda hours:minutes:seconds belirtebilirsiniz - benim örnekte, 25 dakika için zaman aşımı ayarlayın.

Adından da anlaşılacağı gibi openTimeout seçimden sonra hizmet için bağlantıyı açtığınızda bekleyebilirseniz zaman miktarıdır. Benzer şekilde, closeTimeout bir istisna atılır önce bekleyeceksin bağlantı (istemci elden proxy) kapattığınızda zaman miktarıdır.

receiveTimeout bir bit gibi bir ayna için sendTimeout - gönderme zaman aşımı miktarını zaman beklerim bir yanıt sunucudan, receiveTimeout miktar zaman verecek müşteri almak ve işlem yanıt sunucudan.

Diye sen gönder bir ileri bir geri "normal" mesajları, her ikisi de olabilir çok kısa özellikle receiveTimeout beri alıcı bir SOAP ileti, deşifre, kontrol ve kaldırmada gerekir almak neredeyse hiçbir zaman. Hikaye - bu durumda, istemci aslında "indir" sunucudan geri akışı. tamamlamak için daha fazla zaman gerekebilir akışı farklıdır

Ayrıca openTimeout, receiveTimeout ve closeTimeout var. MSDN docs on binding bunlar ne hakkında size daha fazla bilgi verir.

XML tüm intricasies ciddi bir tutuş elde etmek için, kesinlikle satın tavsiye ederim "Learning WCF" Michele tarafından kitap Leroux Bustamante:

Learning WCF

ve siz de biraz zaman-Bölüm 15 "WCF Top to Bottom" bakabilirim serisi - şiddetle tavsiye! onu izlerken harcamak

Daha ileri konular için, kesinlikle Programming WCF servis kitabı Lovy Juwal kontrol etmelisiniz.

Programming WCF

Marc

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • androidandme

    androidandme

    10 Mart 2009
  • JayzTwoCents

    JayzTwoCents

    26 AĞUSTOS 2012
  • Kyler Briskey

    Kyler Briske

    20 ŞUBAT 2011