Instrukcje: tworzenie punktu końcowego usługi w konfiguracji
Punkty końcowe zapewniają klientom dostęp do funkcji oferty usługi Windows Communication Foundation (WCF). Można zdefiniować jeden lub więcej punktów końcowych dla usługi przy użyciu kombinacji względnych i bezwzględnych adresów punktu końcowego lub jeśli nie zdefiniujesz żadnych punktów końcowych usługi, środowisko uruchomieniowe udostępnia niektóre domyślnie. W tym temacie przedstawiono sposób dodawania punktów końcowych przy użyciu pliku konfiguracji zawierającego zarówno adresy względne, jak i bezwzględne.
Przykład 1
Poniższa konfiguracja usługi określa adres podstawowy i pięć punktów końcowych.
<configuration>
<appSettings>
<!-- use appSetting to configure base address provided by host -->
<add key="baseAddress" value="http://localhost:8000/servicemodelsamples/service" />
</appSettings>
<system.serviceModel>
<services>
<!-- This section is optional with the default configuration introduced in .NET Framework 4. -->
<service name="Microsoft.ServiceModel.Samples.CalculatorService">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<endpoint address="/test"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<endpoint address="http://localhost:8001/hello/servicemodelsamples"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<endpoint address="net.tcp://localhost:9000/servicemodelsamples/service"
binding="netTcpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- the mex endpoint is another relative address exposed at
http://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Przykład 2
Adres podstawowy jest określany przy użyciu add
elementu w obszarze service/host/baseAddresses, jak pokazano w poniższym przykładzie.
<service
name="Microsoft.ServiceModel.Samples.CalculatorService">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
</service>
Przykład 3
Pierwsza definicja punktu końcowego pokazana w poniższym przykładzie określa adres względny, co oznacza, że adres punktu końcowego jest kombinacją adresu podstawowego i adresu względnego zgodnie z regułami kompozycji identyfikatora URI ( Uniform Resource Identifier). Adres względny jest pusty (""), więc adres punktu końcowego jest taki sam jak adres podstawowy. Rzeczywisty adres punktu końcowego to http://localhost:8000/servicemodelsamples/service
.
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
Przykład 4
Druga definicja punktu końcowego określa również adres względny, jak pokazano w poniższej przykładowej konfiguracji. Względny adres "test" jest dołączany do adresu podstawowego. Rzeczywisty adres punktu końcowego to http://localhost:8000/servicemodelsamples/service/test
.
<endpoint address="/test"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
Przykład 5
Trzecia definicja punktu końcowego określa adres bezwzględny, jak pokazano w poniższej przykładowej konfiguracji. Adres podstawowy nie odgrywa żadnej roli w adresie. Rzeczywisty adres punktu końcowego to http://localhost:8001/hello/servicemodelsamples
.
<endpoint address="http://localhost:8001/hello/servicemodelsamples"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
Przykład 6
Czwarty adres punktu końcowego określa adres bezwzględny i inny transport — TCP. Adres podstawowy nie odgrywa żadnej roli w adresie. Rzeczywisty adres punktu końcowego to net.tcp://localhost:9000/servicemodelsamples/service.
<endpoint address="net.tcp://localhost:9000/servicemodelsamples/service"
binding="netTcpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
Przykład 7
Aby użyć domyślnych punktów końcowych udostępnianych przez środowisko uruchomieniowe, nie należy określać żadnych punktów końcowych usługi w kodzie lub pliku konfiguracji. W tym przykładzie środowisko uruchomieniowe tworzy domyślne punkty końcowe po otwarciu usługi. Aby uzyskać więcej informacji na temat domyślnych punktów końcowych, powiązań i zachowań, zobacz Uproszczone konfigurowanie i uproszczona konfiguracja usług WCF.
<configuration>
<appSettings>
<!-- use appSetting to configure base address provided by host -->
<add key="baseAddress" value="http://localhost:8000/servicemodelsamples/service" />
</appSettings>
<system.serviceModel>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>