Anvisningar: Konfigurera WCF-tjänsten så att den samverkar med ASP.NET webbtjänstklienter
Om du vill konfigurera en WCF-tjänstslutpunkt (Windows Communication Foundation) så att den kan samverka med ASP.NET webbtjänstklienter System.ServiceModel.BasicHttpBinding använder du typen som bindningstyp för tjänstslutpunkten.
Du kan också aktivera stöd för HTTPS- och transportnivåklientautentisering på bindningen. ASP.NET webbtjänstklienter BasicHttpBinding.MessageEncoding stöder inte MTOM-meddelandekodning, så egenskapen bör lämnas som standardvärde, som är WSMessageEncoding.Text. ASP.NET webtjänstklienter BasicHttpBinding.Security stöder inte WS-Security, så bör anges till Transport.
Om du vill göra metadata för en WCF-tjänst tillgängliga för ASP.NET verktyg för webbtjänstproxygenerering (d.v.s . Web Services Description Language Tool (Wsdl.exe), Web Services Discovery Tool (Disco.exe)och funktionen Lägg till webbreferens i Visual Studio) bör du exponera en HTTP-/GET-metadataslutpunkt.
Lägga till en slutpunkt i kod
Skapa en ny BasicHttpBinding instans
Du kan också aktivera transportsäkerhet för den här tjänstslutpunktsbindningen genom att ange säkerhetsläget för bindningen till Transport. Mer information finns i Transportsäkerhet.
Lägg till en ny programslutpunkt till tjänstvärden med den bindningsinstans som du nyss skapade. Mer information om hur du lägger till en tjänstslutpunkt i kod finns i How to: Create a Service Endpoint in Code (Så här skapar du en tjänstslutpunkt i kod).
Aktivera en HTTP/GET-metadataslutpunkt för din tjänst. Mer information finns i Publicera metadata för en tjänst med hjälp av kod.
Lägga till en slutpunkt i en konfigurationsfil
Skapa en ny BasicHttpBinding bindningskonfiguration. Mer information finns i Så här anger du en tjänstbindning i konfigurationen.
Du kan också aktivera transportsäkerhet för den här tjänstslutpunktsbindningskonfigurationen genom att ange säkerhetsläget för bindningen till Transport. Mer information finns i Transportsäkerhet.
Konfigurera en ny programslutpunkt för din tjänst med hjälp av bindningskonfigurationen som du nyss skapade. Mer information om hur du lägger till en tjänstslutpunkt i en konfigurationsfil finns i How to: Create a Service Endpoint in Configuration (Så här skapar du en tjänstslutpunkt i Konfiguration).
Aktivera en HTTP/GET-metadataslutpunkt för din tjänst. Mer information finns i Publicera metadata för en tjänst med hjälp av en konfigurationsfil.
Exempel
Följande exempelkod visar hur du lägger till en WCF-slutpunkt som är kompatibel med ASP.NET webbtjänstklienter i kod och alternativt i konfigurationsfiler.
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 {0} . . .", 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>
Se även
- Gör så här: Skapa en tjänstslutpunkt i kod
- Gör så här: Publicera metadata för en tjänst med hjälp av kod
- Anvisningar: Ange en tjänstbindning i konfigurationen
- Anvisningar: Skapa en tjänstslutpunkt i konfigurationen
- Anvisningar: Publicera metadata för en tjänst med hjälp av en konfigurationsfil
- Transportsäkerhet
- Använda metadata