Mengoperasikan dengan ASMX Web Services

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

Nota

Prosedur penyiapan dan instruksi build untuk sampel ini terletak di akhir topik ini.

Sampel ini terdiri dari program konsol klien (.exe) dan pustaka layanan (.dll) yang dihosting oleh Internet Information Services (IIS). Layanan ini adalah Layanan Web ASMX yang mengimplementasikan kontrak yang menentukan pola komunikasi balasan permintaan. Layanan ini mengekspos operasi matematika (Add, , SubtractMultiply, dan Divide). Klien membuat permintaan sinkron ke operasi matematika dan layanan membalas dengan hasilnya. 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 oleh klien pada komputer yang sama di http://localhost/servicemodelsamples/service.asmx. Agar klien pada komputer jarak jauh mengakses layanan, nama domain yang memenuhi syarat harus ditentukan alih-alih localhost.

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

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 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, mengompilasi, dan menjalankan sampel

  1. Pastikan Anda telah melakukan Prosedur Penyiapan One-Time untuk Sampel Windows Communication Foundation.

  2. Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti instruksi di Membangun Sampel Windows Communication Foundation.

  3. Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi di Menjalankan Sampel Windows Communication Foundation.