Bagikan melalui


Mengoperasikan dengan Layanan Web ASMX

Sampel ASMX menunjukkan cara mengintegrasikan aplikasi klien Windows Communication Foundation (WCF) dengan layanan Web ASMX yang ada.

Catatan

Prosedur penyiapan dan petunjuk pembuatan untuk sampel ini terdapat di akhir topik ini.

Sampel ini terdiri dari program konsol klien (.exe) dan pustaka layanan (.dll) yang dihosting oleh Layanan Informasi Internet (IIS). Layanan ini adalah Layanan Web ASMX yang mengimplementasikan kontrak yang menentukan pola komunikasi balasan permintaan. Layanan ini mengekspos operasi matematika (Add,Subtract,Multiply, dan Divide). Klien membuat permintaan sinkron ke operasi matematika dan layanan membalas dengan hasil. Aktivitas klien terlihat di jendela konsol.

Implementasi layanan Web ASMX yang ditunjukkan dalam kode sampel berikut menghitung dan mengembalikan hasil yang sesuai.

[WebService(Namespace="http://Microsoft.ServiceModel.Samples")]
public class CalculatorService : System.Web.Services.WebService
    {
        [WebMethod]
        public double Add(double n1, double n2)
        {
            return n1 + n2;
        }
        [WebMethod]
        public double Subtract(double n1, double n2)
        {
            return n1 - n2;
        }
        [WebMethod]
        public double Multiply(double n1, double n2)
        {
            return n1 * n2;
        }
        [WebMethod]
        public double Divide(double n1, double n2)
        {
            return n1 / n2;
        }
    }

Seperti yang dikonfigurasi, layanan dapat diakses di http://localhost/servicemodelsamples/service.asmx oleh klien pada komputer yang sama. Agar klien di komputer jarak jauh dapat mengakses layanan, nama domain yang memenuhi syarat harus ditentukan sebagai ganti localhost.

Komunikasi dilakukan melalui klien yang dihasilkan oleh Alat Utilitas Metadata ServiceModel (Svcutil.exe). Klien berada dalam file generatedClient.cs. Layanan ASMX harus tersedia untuk menghasilkan kode proksi, karena digunakan untuk mengambil metadata yang diperbarui. Jalankan perintah berikut dari perintah di direktori klien untuk menghasilkan proksi berjenis.

svcutil.exe /n:http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples http://localhost/servicemodelsamples/service.svc?wsdl /out:generatedClient.cs

Dengan menggunakan klien yang dihasilkan, Anda dapat mengakses titik akhir layanan dengan mengonfigurasi alamat dan pengikatan yang sesuai. Seperti layanan, klien menggunakan file konfigurasi (App.config) untuk menentukan titik akhir untuk berkomunikasi. Konfigurasi titik akhir klien terdiri dari alamat absolut untuk titik akhir layanan, pengikatan, dan kontrak, seperti yang ditunjukkan dalam konfigurasi sampel berikut.

<client>
   <endpoint
      address="http://localhost/ServiceModelSamples/service.asmx"
      binding="basicHttpBinding"
      contract="Microsoft.ServiceModel.Samples.CalculatorServiceSoap" />
</client>

Implementasi klien membangun instans klien yang dihasilkan. Klien yang dihasilkan kemudian dapat digunakan untuk berkomunikasi dengan layanan.

// Create a client.
CalculatorServiceSoapClient client = new CalculatorServiceSoapClient();

// Call the Add service operation.
double value1 = 100.00D;
double value2 = 15.99D;
double result = client.Add(value1, value2);
Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result);

// Call the Subtract service operation.
value1 = 145.00D;
value2 = 76.54D;
result = client.Subtract(value1, value2);
Console.WriteLine("Subtract({0},{1}) = {2}", value1, value2, result);

// Call the Multiply service operation.
value1 = 9.00D;
value2 = 81.25D;
result = client.Multiply(value1, value2);
Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result);

// Call the Divide service operation.
value1 = 22.00D;
value2 = 7.00D;
result = client.Divide(value1, value2);
Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, result);

//Closing the client gracefully closes the connection and cleans up resources.
client.Close();

Console.WriteLine();
Console.WriteLine("Press <ENTER> to terminate client.");
Console.ReadLine();

Saat Anda menjalankan sampel, permintaan dan respons operasi ditampilkan di jendela konsol klien. Tekan ENTER di jendela klien untuk mematikan komputer klien.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

Untuk menyiapkan, membangun, dan menjalankan sampel

  1. Pastikan Anda telah melakukan Prosedur Penyiapan Satu Kali untuk Sampel Windows Communication Foundation.

  2. Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti petunjuknya di Membangun Sampel WCF.

  3. Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi pada Menjalankan Sampel WCF.