Ich möchte einige grundlegende Anleitung zum Einrichten meiner WCF-Konfiguration. Dies ist meine erste ernsthafte Anstrengung mit WCF (und erste Post auf Stackoverflow).Wie konfiguriere ich mehrere Dienstendpunkte in WCF?
Ich habe eine WCF-Klassenbibliothek (APILibrary), die ich in mein Webprojekt referenzieren. In der wcf-Bibliothek habe ich derzeit zwei Dienste - IAuthService und ITradeService.
Entlang diesen Linien, ich habe drei Fragen:
1) Mein Problem (und den ursprünglichen Grund für diesen Beitrag) ist, dass, wenn ich meine Anwendung kompilieren ich TradeServiceCient zu nennen bin in der Lage, aber nicht AuthServiceClient in meiner Web-App. Letzteres erscheint nicht im Intellisense. Ich habe das Gefühl, dass es mit der Tatsache zu tun hat, dass sie den gleichen Port teilen (und nur ein Endpunkt wurde aufgenommen), aber ich bin offensichtlich unklar.
2) Ich versuche, zwei Service-Endpunkte zur gleichen Zeit (und wahrscheinlich ein paar mehr) während ich entwickeln und testen. Wenn ich zum Staging und zum Hosting übergehe, hat jeder Endpunkt seine eigene Adresse. Bis dahin, wie mache ich das Ich mache das (ich habe das Gefühl, das bezieht sich auf meine Frage oben)?
3) Ich merke in vielen Posts Menschen haben Beispiele für die "Client" und "Server" "system.serviceModel" -Code. Sind diese eindeutigen Dateien oder Tags in der App.config-Datei, die sich in meiner WCF-Bibliothek befindet? Was macht jeder? Derzeit denke ich, ich habe nur die Server-Seite? Hier
ist, was ich habe zur Zeit in meiner App.config-Datei (in meiner WCF Library):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation debug="true" />
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<client />
<services>
<service behaviorConfiguration="ApiLibrary.ApiBehavior" name="SpoonSys.Api.Trade.TradeService">
<endpoint address="" binding="wsHttpBinding" contract="SpoonSys.Api.Trade.ITradeService">
<identity>
<dns value="localhost:8731" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8731/Design_Time_Addresses/ApiLibrary/Trade/" />
</baseAddresses>
</host>
</service>
<service behaviorConfiguration="ApiLibrary.ApiBehavior" name="SpoonSys.Api.Authentication.AuthService">
<endpoint address="" binding="wsHttpBinding" contract="SpoonSys.Api.Authentication.IAuthService">
<identity>
<dns value="localhost:8731" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8731/Design_Time_Addresses/ApiLibrary/Authentication/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ApiLibrary.ApiBehavior">
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Meine Konfiguration ist ASP.NET/Framework 3.5/VS 2008/C#
@marc_s sagt _ "Die andere Frage ist, warum Sie nur einen Endpunkt in Ihrem intellisense sehen können - haben Sie Ihren Client-Proxy für beide Endpunkte erstellt? Da es zwei separate Verträge sind, benötigen Sie zwei separate Client-Proxys Haben Sie Ihren Client-Endpunkt erstellt? Können Sie die Client-Konfiguration auch posten? "_ – Kiquenet