Bagikan melalui


Pembatasan

Sampel Pembatasan menunjukkan penggunaan kontrol pembatasan. Kontrol pembatasan membatasi jumlah panggilan, instans, atau sesi bersamaan untuk mencegah konsumsi sumber daya yang berlebihan. Perilaku pembatasan ditentukan dalam pengaturan file konfigurasi layanan. Sampel ini didasarkan pada Memulai yang mengimplementasikan layanan kalkulator.

Dalam sampel ini, klien adalah aplikasi konsol (.exe) dan layanan di-hosting oleh Layanan Informasi Internet (IIS).

Catatan

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

File konfigurasi layanan menentukan kontrol pembatasan dalam <serviceThrottling>, seperti yang ditunjukkan dalam konfigurasi sampel berikut.

<behaviors>
  <serviceBehaviors>
    <behavior name="CalculatorServiceBehavior">
      <serviceDebug includeExceptionDetailInFaults="False" />
      <serviceMetadata httpGetEnabled="True"/>
      <!-- Specify throttling behavior -->
    <serviceThrottling maxConcurrentCalls="2"
                       maxConcurrentInstances="10"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

Seperti yang dikonfigurasi, layanan membatasi panggilan bersamaan maksimum menjadi 2, dan jumlah maksimum instans bersamaan menjadi 10.

Untuk menunjukkan pembatasan, kami mendefinisikan waktu tidur pada metode layanan sebagai berikut:

public double Add(double n1, double n2)
{
    System.Threading.Thread.Sleep(2000);
    return n1 + n2;
}

Saat Anda menjalankan sampel, permintaan dan respons operasi ditampilkan di jendela konsol klien. Metode Tambahkan dan Kurangi dijalankan secara bersamaan dan metode Perbanyak dan Bagi dijalankan secara bersamaan membuktikan bahwa tidak lebih dari 2 metode dapat dieksekusi secara bersamaan sehingga menunjukkan pembatasan.

Press <ENTER> to terminate client.
Add(100,15.99)
Subtract(145,76.54)
Multiply(9,81.25)
Divide(22,7)

Add Result: 115.99
Subtract Result: 68.46
Multiply Result: 731.25
Divide Result: 3.14285714285714

Press any key to continue . . .

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.