2009-08-23 5 views
5

Ich entwickle einen WCF-Service. Ich habe zwei DLLs eine für Nachrichtenverträge und eine für Serviceverträge Schnittstellen erstellt. Ich teile diese beiden DLLs mit Server und Client. Ich verwende keine AddServiceReference Ich verwende ChannelFactory-Klasse, um Proxies zu erstellen. Es folgt der Code, den ich Client-Proxies erstellen bin mit:Wie konfiguriere ich Clients für einen WCF-Dienst?

BasicHttpBinding binding = new BasicHttpBinding(); 
EndpointAddress endpoint = new EndpointAddress(new Uri ("http://localhost:8989/HelloService/")); 
ChannelFactory<IHello> chanFac = new ChannelFactory<IHello>(binding, endpoint); 
IHello clientProxy = chanFac.CreateChannel(); 

Jetzt muss ich die Bindung und EndpointAddress im Code erstellen, was ich will, dass diese aus app.config Datei kommen sollte, wie kann ich tun Sie es, damit ich nicht binden muss und Endpunkt jedesmal in den Code schreiben. Irgendwelche Hilfe wird geschätzt.

Antwort

8

Verwenden Sie eine app.config wie dieses (wenn Sie "Service-Referenz" von verwenden Visual Studio, VS erstellt dies in der Regel automatisch für Sie - und Sie müssen es nur an Ihre Bedürfnisse anpassen:

<configuration> 
    <system.serviceModel> 
     <bindings> 
      <basicHttpBinding> 
      <binding name="UserNameSecurity"> 
       <security mode="Message"> 
       <message clientCredentialType="UserName"/> 
       </security> 
      </binding> 
      </basicHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://localhost:8888/MyService" binding="basicHttpBinding" 
       bindingConfiguration="UserNameSecurity" contract="IMyService" /> 
      <endpoint address="net.tcp://localhost:8484/MyService/Mex" 
         binding="mexTcpBinding" 
         bindingConfiguration="" 
         contract="IMetadataExchange" name="mexNetTcp" /> 
     </client> 
    </system.serviceModel> 
</configuration> 

Der Abschnitt und seine möglichen Werte und Unterabschnitte sind in der WCF-Konfiguration gut dokumentiert.

Alternativ können Sie in VS 2008 SP1 den "WCF Service Configuration Editor" verwenden - siehe "Tools> WCF Service Configuration Editor".

alt text http://i27.tinypic.com/dolx8w.jpg

Es ermöglicht Ihnen, visuell zu definieren und Ihre Client-Konfigurationseinstellungen ändern. Sobald Sie es über das Menü "Extras" gestartet haben, können Sie direkt danach mit der rechten Maustaste auf die Datei "app.config" im Projektmappen-Explorer klicken und von dort aus starten (basierend auf dieser app.config).

alt text http://i25.tinypic.com/2s9pwex.jpg

Marc

Verwandte Themen