2009-09-15 10 views
0

J'ai rencontré un problème avec le test WCF, et le problème a été résolu lorsque je suis passé en haut de system.servicemodel. Ma question est: pourquoi est-ce important? Est-ce que .NET ne lit pas le XML par les noms de champs?Pourquoi les paramètres de commande sont-ils importants dans app.config?

<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="MyServiceTypeBehaviors"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <basicHttpBinding> 
    <!-- Server--> 
    <binding 
     name="ws" 
     transferMode="Streamed" 
     messageEncoding="Mtom" 
     maxReceivedMessageSize="10067108864" 
     maxBufferSize="500000" 
     maxBufferPoolSize="500000" 
     receiveTimeout="10:00:00" 
     sendTimeout="10:00:00" 
     closeTimeout="10:00:00" 
     openTimeout="10:00:00"> 
     <readerQuotas 
     maxDepth="32" 
     maxStringContentLength="2147483647" 
     maxArrayLength="2147483647" 
     maxBytesPerRead="4096" 
     maxNameTableCharCount="16384" /> 
     <security mode="None"> 
     <transport clientCredentialType="None"/> 
     </security> 
    </binding> 

    <!-- Server --> 
     <binding 
     name="FileTransferServicesBinding" 
     transferMode="Streamed" 
     messageEncoding="Mtom" 
     maxReceivedMessageSize="10067108864" 
     maxBufferSize="500000" 
     maxBufferPoolSize="500000"> 
     <readerQuotas 
      maxDepth="32" 
      maxStringContentLength="655360" 
      maxArrayLength="655360" 
      maxBytesPerRead="4096" 
      maxNameTableCharCount="16384" /> 
     </binding> 

    </basicHttpBinding> 
</bindings> 

<!-- Server --> 
<services> 
    <service behaviorConfiguration="MyServiceTypeBehaviors" name="Namespace.Namespace"> 
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="FileTransferServicesBinding" contract="Namespace.INamespaceSC" /> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:8081/Namespace" /> 
     </baseAddresses> 
    </host> 
    <endpoint address="mex" binding="mexHttpBinding" contract="Namespace.INamespaceSC" /> 
    </service> 
</services> 

<!-- Behaviors field was here before, when it didn't work --> 

<!-- Client --> 
<client> 
    <endpoint 
    address="http://localhost:8081/Namespace" 
    binding="basicHttpBinding" 
    bindingConfiguration="ws" 
    contract="Namespace.INamespaceSC" 
    /> 
</client></system.serviceModel> 
+1

pouvez-vous nous montrer les fichiers de configuration d'origine et modifi? –

Répondre

0

Je ne pense pas que l'ordre compte! J'ai développé beaucoup de services WCF et n'ai jamais vu un tel comportement ...

0

La commande ne concerne que les configurations de service ou de point final et vous ne nommez pas la configuration à utiliser. Dans ce cas, WCF utilisera la configuration correspondante supérieure.

Je ne vois aucune raison de déplacer la section des comportements ferait une différence. Je les ai souvent quelque part près du fond.

+0

Ils sont tous nommés. – Tuoski

Questions connexes