Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 dihosting oleh Internet Information Services (IIS).
Nota
Prosedur penyiapan dan instruksi build untuk sampel ini terletak di akhir topik ini.
File konfigurasi layanan menetapkan kontrol pembatasan dalam elemen <serviceThrottling>, seperti yang ditunjukkan pada 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>
Sesuai konfigurasi, layanan membatasi panggilan bersamaan maksimal sebanyak 2, dan jumlah instans bersamaan maksimal sebanyak 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 Tambah dan Kurang dijalankan secara bersamaan, dan metode Perkalian dan Pembagian juga dijalankan secara bersamaan. Ini membuktikan bahwa tidak lebih dari 2 metode dapat dieksekusi secara serentak, sehingga menunjukkan adanya 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, mengompilasi, dan menjalankan sampel
Pastikan Anda telah melakukan Prosedur Penyiapan One-Time untuk Sampel Windows Communication Foundation.
Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti instruksi di Membangun Sampel Windows Communication Foundation.
Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi di Menjalankan Sampel Windows Communication Foundation.