Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Så här konfigurerar du en WCF-tjänstslutpunkt så att den kan samverka med ASP.NET webbtjänstklienter:
Använd typen System.ServiceModel.BasicHttpBinding som bindningstyp för tjänstslutpunkten.
Använd inte funktioner för återanrop och sessionskontrakt eller transaktionsbeteenden på tjänstslutpunkten
Du kan också aktivera stöd för HTTPS- och transportnivåklientautentisering på bindningen.
Följande funktioner i BasicHttpBinding klassen kräver funktioner utöver WS-I Basic Profile 1.1:
MTOM-meddelandekodning (Message Transmission Optimization Mechanism) som styrs av BasicHttpBinding.MessageEncoding egenskapen. Lämna den här egenskapen som standardvärde, vilket är WSMessageEncoding.Text att inte använda MTOM.
Meddelandesäkerhet som styrs av BasicHttpBinding.Security värdet ger WS-Security stöd som är kompatibelt med WS-I Basic Security Profile 1.0. Lämna den här egenskapen som standardvärde, vilket är SecurityMode.Transport att inte använda WS-Security.
Om du vill göra metadata för en WCF-tjänst tillgängliga för ASP.NET använder du verktygen för webbtjänstklientgenerering: Web Services Description Language Tool (Wsdl.exe), Web Services Discovery Tool (Disco.exe)och funktionen Lägg till webbreferens i Visual Studio. Aktivera metadatapublikation. Mer information finns i Publicera metadataslutpunkter.
Exempel
Beskrivning
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 en konfigurationsfil.
Kod
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>