2009-01-15 8 views
9

Was sind die minimalen Client-Einstellungen, die ich für eine optimierte WCF-Konfiguration in der app.config tun muss? dieseWCF minimaler Client app.config Einstellungen

Der Standard ist:

<bindings> 
     <wsHttpBinding> 
      <binding name="WSHttpBinding_IService" closeTimeout="00:01:00" 
       openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
       bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" 
       maxBufferPoolSize="524288" maxReceivedMessageSize="65536" 
       messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" 
       allowCookies="false"> 
       <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
        maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
       <reliableSession ordered="true" inactivityTimeout="00:10:00" 
        enabled="false" /> 
       <security mode="Message"> 
        <transport clientCredentialType="Windows" proxyCredentialType="None" 
         realm="" /> 
        <message clientCredentialType="Windows" negotiateServiceCredential="true" 
         algorithmSuite="Default" establishSecurityContext="true" /> 
       </security> 
      </binding> 
     </wsHttpBinding> 
    </bindings> 

Was kann ich ausschließen, und wie viel davon brauch ich?


bearbeiten: Sollte ich nur Teile herauszureißen, bis es bricht? Ich hatte gehofft, einige gute optimierte wsHttpBindings zu finden, mit denen die Leute viel Glück haben.

+0

Es ist nicht klar aus der Frage, ob wir die Perspektive eines Servers oder eines Clients einnehmen sollten. Die minimale Konfiguration könnte abweichen. Ich vermute, dass keinerlei verbindliche Konfiguration benötigt wird. Sowohl ein WCF-Client als auch ein Server * könnten ohne verbindliche Konfiguration sehr gut funktionieren. Die Minimalkonfiguration wäre entweder das Element ' 'oder' ', je nachdem, ob die Frage auf einen Client oder einen Server gerichtet ist. –

Antwort

8

Jerograv hat recht, da es sich um Standardwerte handelt, können Sie alle auslassen. Um dies zu testen, habe ich einen einfachen Dienst erstellt und erstellt die minimale Konfiguration benötigt, die die Adresse ist ziemlich viel, die Bindung und die vertrags-

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.serviceModel> 
     <client> 
      <endpoint address="http://sabra2/TestService/Service1.svc" binding="wsHttpBinding" 
       contract="IService1"/> 
     </client> 
    </system.serviceModel> 
</configuration> 
+0

perfekt, danke! –

+0

Dies wird aus der Perspektive eines Kunden beantwortet. Es ist also wahr, dass die minimale Konfiguration ein '' Element ist, aber die Umgebung wird entweder' 'oder' 'sein, abhängig davon, ob Sie ein Client oder Server sind. –

+0

Und auch, wenn dies der Server gewesen wäre, würden Sie keinen "address" -Wert benötigen, er könnte einfach leer sein (wenn er von IIS gehostet wird, da die Adresse von Ihrer IIS-Bindung übernommen würde). –

4

Ich denke, dass Sie alle davon finden, ist optional. Alle diese Dinge in dieser bestimmten Bindung sind sowieso die Standardwerte.

Tatsächlich denke ich, in diesem Fall wäre die Angabe der Bindung überhaupt am Endpunkt optional.

7

einfach das ABC der WCF erinnern. Adresse, Bindung, Vertrag. Das ist alles was du brauchst!

Ihr Client muss nur über einen Endpunkt verfügen, um mit einem WCF-Dienst zu sprechen. Jeder Endpunkt muss nur jedes der ABCs beschreiben und Sie sind fertig. Die anderen Sachen können später angeheftet werden.

Das ist ein Grund, warum ich kein großer Fan von Service-Referenzen in Visual Studio bin.