Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby skonfigurować punkt końcowy usługi Windows Communication Foundation (WCF) do współdziałania z klientami usługi sieci Web ASP.NET, użyj System.ServiceModel.BasicHttpBinding typu jako typu powiązania punktu końcowego usługi.
Opcjonalnie można włączyć obsługę protokołu HTTPS oraz uwierzytelniania klienta na poziomie transportu w powiązaniu. ASP.NET klienci usługi sieci Web nie obsługują kodowania komunikatów MTOM, więc BasicHttpBinding.MessageEncoding właściwość powinna być pozostawiona jako wartość domyślna, czyli WSMessageEncoding.Text. Klienci usługi sieciowej ASP.NET nie obsługują WS-Security, dlatego wartość BasicHttpBinding.Security należy ustawić na Transport.
Aby udostępnić metadane dla usługi WCF narzędziom do generowania serwera proxy w ASP.NET, takim jak narzędzie języka opisu usług sieci Web (Wsdl.exe), narzędzie odnajdywania usług sieci Web (Disco.exe) oraz funkcja Dodaj odwołanie do sieci Web w Visual Studio, należy wystawić punkt końcowy metadanych HTTP/GET.
Dodawanie punktu końcowego w kodzie
Utwórz nowe BasicHttpBinding wystąpienie
Opcjonalnie włącz zabezpieczenia transportu dla tego powiązania punktu końcowego usługi, ustawiając tryb zabezpieczeń dla powiązania na Transport. Aby uzyskać szczegółowe informacje, zobacz Transport Security (Zabezpieczenia transportu).
Dodaj nowy punkt końcowy aplikacji do hosta usługi, korzystając z instancji powiązania, którą właśnie utworzyłeś. Aby uzyskać szczegółowe informacje na temat dodawania punktu końcowego usługi w kodzie, zobacz Instrukcje: tworzenie punktu końcowego usługi w kodzie.
Włącz punkt końcowy metadanych HTTP GET dla swojej usługi. Aby uzyskać szczegółowe informacje , zobacz How to: Publish Metadata for a Service Using Code (Instrukcje: publikowanie metadanych dla usługi przy użyciu kodu).
Dodawanie punktu końcowego w pliku konfiguracji
Utwórz nową BasicHttpBinding konfigurację powiązania. Aby uzyskać szczegółowe informacje, zobacz Instrukcje: określanie powiązania usługi w konfiguracji.
Opcjonalnie włącz zabezpieczenia transportu dla tej konfiguracji powiązania punktu końcowego usługi, ustawiając tryb zabezpieczeń dla powiązania na Transport. Aby uzyskać szczegółowe informacje, zobacz Transport Security (Zabezpieczenia transportu).
Skonfiguruj nowy punkt końcowy aplikacji dla usługi przy użyciu właśnie utworzonej konfiguracji powiązania. Aby uzyskać szczegółowe informacje na temat dodawania punktu końcowego usługi w pliku konfiguracji, zobacz Instrukcje: tworzenie punktu końcowego usługi w konfiguracji.
Włącz punkt końcowy metadanych HTTP/GET dla twojej usługi. Aby uzyskać szczegółowe informacje , zobacz Instrukcje: publikowanie metadanych dla usługi przy użyciu pliku konfiguracji.
Przykład
Poniższy przykładowy kod przedstawia sposób dodawania punktu końcowego programu WCF zgodnego z klientami usługi sieci Web ASP.NET w kodzie i alternatywnie w plikach konfiguracji.
using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Description;
[ServiceContract]
public interface IEcho
{
[OperationContract]
string Echo(string s);
}
public class MyService : IEcho
{
public string Echo(string s)
{
return s;
}
}
class Program
{
static void Main(string[] args)
{
string baseAddress = "http://localhost:8080/wcfselfhost/";
ServiceHost host = new ServiceHost(typeof(MyService), new Uri(baseAddress));
// Create a BasicHttpBinding instance
BasicHttpBinding binding = new BasicHttpBinding();
// Add a service endpoint using the created binding
host.AddServiceEndpoint(typeof(IEcho), binding, "echo1");
host.Open();
Console.WriteLine($"Service listening on {baseAddress} . . .");
Console.ReadLine();
host.Close();
}
}
Imports System.Collections.Generic
Imports System.Text
Imports System.ServiceModel
Imports System.ServiceModel.Description
<ServiceContract()> _
Public Interface IEcho
<OperationContract()> _
Function Echo(ByVal s As String) As String
End Interface
Public Class MyService
Implements IEcho
Public Function Echo(ByVal s As String) As String Implements IEcho.Echo
Return s
End Function
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim baseAddress = "http://localhost:8080/wcfselfhost/"
Dim host As New ServiceHost(GetType(MyService), _
New Uri(baseAddress))
' Add a service endpoint using the created binding
With host
.AddServiceEndpoint(GetType(IEcho), _
New BasicHttpBinding(), _
"echo1")
.Open()
Console.WriteLine("Service listening on {0} . . .", _
baseAddress)
Console.ReadLine()
.Close()
End With
End Sub
End Class
<configuration>
<system.serviceModel>
<services>
<service name="MyService" behaviorConfiguration="HttpGetMetadata">
<endpoint address="echo2" contract="IEcho" binding="basicHttpBinding" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="HttpGetMetadata">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Zobacz też
- Instrukcje: tworzenie punktu końcowego usługi w kodzie
- Instrukcje: publikowanie metadanych dla usługi przy użyciu kodu
- Jak określić powiązanie usługi w konfiguracji
- Instrukcje: tworzenie punktu końcowego usługi w konfiguracji
- Instrukcje: publikowanie metadanych dla usługi przy użyciu pliku konfiguracji
- Zabezpieczenia transportu
- Korzystanie z metadanych