2010-05-14 48 views
2

我有一個WCF SOAP 1.1 Webservice,其配置如下。SOAP WCF Webservice在本地或遠程調用時的行爲有所不同

對此端點的任何方法的併發調用會掛起,直到另一個遠程調用時(從網絡上的另一臺計算機)調用此方法。

當這些方法在本地調用時(客戶機位於同一臺機器上)時,我無法複製此內容。

我試圖增加maxConcurrentCalls沒有運氣......服務行爲似乎根據客戶端本地/遠程位置不同。任何猜測?

查看併發呼叫場景的ServiceModelEndpoint性能計數器時,結果很有趣:遠程「未完成調用」達到2個調用的限制...而20個併發線程的本地調用達到18個「未完成調用「! 2個「遠程」調用的限制似乎是「每個進程」。

感謝,

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.serviceModel> 
    <services> 
     <service behaviorConfiguration="MyCustomBehavior" name="CONTOSO.CONTOSOServerApi.IContosoServiceApiImplV1"> 
     <endpoint address="" binding="customBinding" bindingConfiguration="WebBinding" 
      bindingNamespace="http://contoso.com" contract="CONTOSO.CONTOSOServerApiInterfaceV1.IContosoServiceApiV1" /> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyCustomBehavior"> 
      <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8080/MyEndPointV1" /> 
      <serviceDebug httpHelpPageEnabled="false" includeExceptionDetailInFaults="true" /> 
      <serviceThrottling maxConcurrentSessions="10000" maxConcurrentCalls="1000"/> 
      <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <bindings> 
     <customBinding> 
     <binding name="WebBinding"> 
      <textMessageEncoding messageVersion="Soap11" maxReadPoolSize="2147483647" maxWritePoolSize="2147483647"> 
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
      maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
      </textMessageEncoding> 
      <httpsTransport /> 
     </binding> 
     </customBinding> 
    </bindings> 
    </system.serviceModel> 
</configuration> 
+0

你這是什麼託管它?如果您在客戶端計算機上(XP,Vista,7)並在IIS中託管,則會遇到一些連接問題。 – 2010-05-14 10:45:11

+0

它是由ServiceHost自行託管的。服務器在Windows Server 2008下,客戶端爲XP/Win7。 – Idriss 2010-05-14 10:54:35

+0

我試圖遠程連接到Win7上承載的相同服務,同樣的問題。也試過沒有防火牆,沒有防病毒......同樣的問題。這似乎與WCF有關。 – Idriss 2010-05-14 11:02:00

回答

1

它是一個客戶端的問題,System.Net控制用多少出站TCP連接是通過HttpWebRequest的默認使用的是2%的端點:

ServicePointManager.DefaultConnectionLimit = 10;

相關問題