Membuat WS-I Profil Dasar 1.1 Layanan Interoperabilitas

Untuk mengonfigurasi titik akhir layanan WCF agar dapat dioperasikan dengan klien layanan web ASP.NET:

  • Gunakan jenis System.ServiceModel.BasicHttpBinding sebagai jenis pengikatan untuk titik akhir layanan Anda.

  • Jangan gunakan fitur panggilan balik dan kontrak sesi atau perilaku transaksi di titik akhir layanan Anda

Anda dapat secara opsional mengaktifkan dukungan untuk HTTPS dan autentikasi klien tingkat transportasi pada pengikatan.

Fitur BasicHttpBinding kelas berikut memerlukan fungsionalitas di luar WS-I Profil Dasar 1.1:

Untuk membuat metadata untuk layanan WCF tersedia untuk ASP.NET, gunakan alat pembuatan klien layanan Web: Alat Bahasa Deskripsi Layanan Web (Wsdl.exe), Alat Penemuan Layanan Web (Disco.exe), dan fitur Tambahkan Referensi Web di Visual Studio. Memungkinkan publikasi metadata. Untuk informasi selengkapnya, lihat Menerbitkan Titik Akhir Metadata.

Contoh

Deskripsi

Contoh kode berikut menunjukkan cara menambahkan titik akhir WCF yang kompatibel dengan klien layanan Web ASP.NET dalam kode dan, atau, dalam file konfigurasi.

Kode

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>

Lihat juga