Saat mengembangkan proyek baru, menggunakan teknologi inti asp.net, proyek lama mungkin merupakan layanan WCF yang dikembangkan menggunakan .NET Framework 4, karena biaya rekonstruksi terlalu tinggi, perlu menggunakan inti asp.net untuk memanggil antarmuka layanan WCF.
Pertama, buat dua proyek baru:
ASP.NET Proyek Core 3.1: dotnet-core-call-wcf Proyek .NET Framework 4 (aplikasi layanan WCF): sekolah-wcf-service
Visual Studio 2019 ingin membuat layanan WCF, tidak dapat menemukan templat, solusi:
Pilih Instal alat dan fitur lainnya untuk membuka Visual Studio Installer. Pilih tab Komponen Individual, gulir ke bawah ke Aktivitas Pengembangan, pilih Windows Communication Foundation, dan klik Ubah.
WCF membuat dua antarmuka sebagai berikut:
Kode implementasi antarmuka adalah sebagai berikut:
Kontrak layanan adalah kumpulan operasi layanan terkait, dan ketika kami menerapkan ServiceContractAttribute pada antarmuka, kami memberinya atribut kontrak layanan. Namun, untuk jenis seperti itu, idiomnya tidak secara otomatis menjadi operasi layanan kontrak, dan hanya ketika fitur OperationContractAttribute diterapkan, anggota metode yang sesuai dapat menjadi operasi layanan yang dapat diakses melalui panggilan layanan.
Saat Anda memulai proyek wcf, itu akan secara otomatis menjalankan WcfTestClient dan mencoba memanggilnya seperti yang ditunjukkan pada gambar di bawah ini:
Menggunakan proyek ASP.NET Core untuk memanggil layanan WCF
Klik kanan Layanan Terhubung, pilih layanan yang ingin Anda tambahkan koneksinya, dan pilih layanan WCF, seperti yang ditunjukkan pada gambar berikut:
Alamat layanan yang diisi: http://localhost:3705/Service1.svc
Kemungkinan kesalahan:
Karena tidak mungkin menulis alamat layanan WCF sampai mati, tambahkan kode berikut ke file appsettings.json:
Edit file Startup.cs dan daftarkan layanan WCF dengan kode berikut:
Panggil layanan wcf pada pengontrol HomeController, injeksi konstruktor pertama, kodenya adalah sebagai berikut:
Memanggil layanan WCF:
Jalankan situs web asp.net Core, efeknya seperti yang ditunjukkan di bawah ini:
Kami mencoba memodifikasi layanan WCF sehingga antarmuka mengembalikan hasilnya setelah 3 menit, lalu memulai ulang inti asp.net untuk memanggil layanan WCF, dan kesalahannya adalah sebagai berikut:
AggregateException: One or more errors occurred. (The request channel timed out attempting to send after 00:01:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.) Pada saat ini, kita perlu memodifikasi batas waktu default, menyesuaikan pengikatan BasicHttpBinding, dan mengedit ulang file Startup.cs, sebagai berikut:
Unduhan kode sumber:
Wisatawan, jika Anda ingin melihat konten tersembunyi dari posting ini, silakan Jawab
|