Mungkin tampak seperti pertanyaan konyol, tetapi semua yang ada di WCF tampak jauh lebih rumit daripada di asmx, bagaimana cara menambah waktu tunggu layanan svc?
Inilah yang saya miliki sejauh ini:
<bindings>
<basicHttpBinding>
<binding name="IncreasedTimeout"
openTimeout="12:00:00"
receiveTimeout="12:00:00" closeTimeout="12:00:00"
sendTimeout="12:00:00">
</binding>
</basicHttpBinding>
</bindings>
Dan kemudian titik akhir saya dipetakan seperti ini:
<endpoint address=""
binding="basicHttpBinding" bindingConfiguration="IncreasedTimeout"
contract="ServiceLibrary.IDownloads">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
Kesalahan persis yang saya dapatkan:
Saluran permintaan habis waktu sambil menunggu balasan setelah 00: 00: 59.9990000. Tingkatkan nilai batas waktu yang diteruskan ke panggilan ke Request atau tingkatkan nilai SendTimeout di Binding. Waktu yang dialokasikan untuk operasi ini mungkin merupakan bagian dari waktu tunggu yang lebih lama.
Di Klien Tes WCF, ada ikon konfigurasi yang berisi konfigurasi waktu proses layanan saya:
Seperti yang Anda lihat nilainya tidak sama seperti yang saya tetapkan untuk itu? Apa yang saya lakukan salah?
<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>
Cara terbaik adalah mengubah pengaturan yang Anda inginkan dalam kode Anda.
Lihat contoh di bawah ini:
sumber
Konfigurasi waktu tunggu perlu disetel di tingkat klien, jadi konfigurasi yang saya tetapkan di web.config tidak berpengaruh, alat uji WCF memiliki konfigurasinya sendiri dan di sanalah Anda perlu menyetel batas waktu.
sumber
Mendapat kesalahan yang sama baru-baru ini tetapi dapat memperbaikinya dengan memastikan untuk menutup setiap panggilan klien wcf. misalnya.
atau
sumber
using
tanpa membuang objek saluran yang salah. Berikut adalah blogger lain dengan pendekatan yang lebih kompatibel denganusing
blok: erwyn.bloggingabout.net/2006/12/09/WCF-Service-Proxy-Helper .