Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 63675|Yanıt: 8

[.NET Core] ASP.NET Core 3.1 Calling .NET 4.0 WCF Services tutorial

[Bağlantıyı kopyala]
Yayınlandı 19.07.2020 22:18:08 | | | |
Yeni bir proje geliştirilirken, asp.net çekirdek teknolojisi kullanılarak, eski proje .NET Framework 4 kullanılarak geliştirilen bir WCF servisi olabilir; yeniden yapılandırma maliyeti çok yüksek olduğundan, WCF hizmet arayüzünü çağırmak için asp.net çekirdeği kullanmak gerekir.

İlk olarak, iki yeni proje oluşturun:

ASP.NET Core 3.1 projesi: dotnet-core-call-wcf
.NET Framework 4 projesi (WCF servis uygulaması): schools-wcf-service

Visual Studio 2019 bir WCF servisi oluşturmak istiyor, şablonu bulamıyor, çözüm:

Visual Studio Kurulumcu'yu açmak için Daha fazla araç ve özellik yükle. Bireysel Bileşenler sekmesini seçin, Geliştirme Faaliyetleri'ne kaydırın, Windows İletişim Temeli'ni seçin ve Değiştir'e tıklayın.


WCF aşağıdaki gibi iki arayüz oluşturur:

Arayüz uygulama kodu şöyledir:


Hizmet sözleşmesi, ilgili hizmet işlemlerinin bir koleksiyonudur ve bir arayüzde ServiceContractAttribute uyguladığımızda, ona bir hizmet sözleşmesi özniteliği veririz. Ancak böyle bir tür için, onun deyimi otomatik olarak sözleşmeli hizmet operasyonu haline gelmez ve ancak OperationContractAttribute özelliği uygulandığında, ilgili yöntem üyesi hizmet çağrısıyla erişilebilen bir hizmet operasyonu haline gelebilir.

WCF projesine başladığınızda, otomatik olarak WcfTestClient çalıştırır ve aşağıdaki şekilde gösterildiği gibi çağırmaya çalışır:



WCF hizmetlerini aramak için ASP.NET Core projelerini kullanın

Sağ tıklayın Connected Services, bağlantı eklemek istediğiniz hizmeti seçin ve aşağıdaki görselde gösterildiği gibi WCF hizmetini seçin:



Hizmet adresi dolduruldu: http://localhost:3705/Service1.svc

Olası hatalar:

WCF:Error:Unable to generate deps.json
https://www.itsvse.com/thread-9288-1-1.html

WCF hizmet adresini sona kadar yazmak imkansız olduğundan, appsettings.json dosyasına aşağıdaki kodu ekleyin:

Startup.cs dosyasını düzenleyin ve WCF hizmetini aşağıdaki kodla kaydedin:

HomeController kontrolcüsündeki wcf servisini çağırın, ilk üretici enjeksiyonu, kod şöyledir:

WCF servisini aramak:

asp.net Core web sitesini çalıştırın, etki aşağıda gösterildiği gibidir:



WCF hizmetini arayüz sonucu 3 dakika sonra döndürecek şekilde değiştirmeye çalışıyoruz, ardından asp.net çekirdeği yeniden başlatarak WCF servisini çağırıyoruz ve hata şu şekildedir:

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.)

Şu anda, varsayılan zaman aşımını değiştirmemiz, BasicHttpBinding bağlamasını özelleştirmemiz ve Startup.cs dosyasını aşağıdaki gibi yeniden düzenlememiz gerekiyor:



Kaynak kodu indirme:

Turistler, bu gönderinin gizli içeriğini görmek isterseniz lütfenYanıt





Önceki:Windows kayıt defterinin bozulması konusunda yardım
Önümüzdeki:VS 2019, çağrı dosyasını oluşturmak için svcutil.exe araçlar kullanır
Yayınlandı 15.09.2020 16:26:41 |
Öğren
Yayınlandı 11.05.2021 13:58:38 |
Bir kaynak kodu patronu var
Yayınlandı 18.06.2021 15:07:44 |
Sadece görmek için
Yayınlandı 18.06.2021 15:08:38 |
Kod görüntülenemiyor
Yayınlandı 28.06.2021 10:58:22 |
Hiçbir sonuç alamadım, ne oluyor?
Yayınlandı 4.07.2021 10:21:09 |
Tanrılardan öğrenmek için geri dön, paylaştığın için teşekkürler
Yayınlandı 3.08.2022 15:36:10 |
Aynı ihtiyaçlar, gel ve öğren
Yayınlandı 2.12.2022 01:17:10 |
Tanrılardan öğrenin
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com