Aracılığıyla paylaş


COM Uygulamaları ile Tümleştirme Genel Bakış

Windows Communication Foundation (WCF), yönetilen kod geliştiricisine bağlı uygulamalar oluşturmak için zengin bir ortam sağlar. Ancak yönetilmeyen COM tabanlı koda önemli bir yatırım yaparsanız ve geçiş yapmak istemiyorsanız WCF hizmet adını kullanarak WCF Web hizmetlerini mevcut kodunuzla doğrudan tümleştirmeye devam edebilirsiniz. Hizmet adı Office VBA, Visual Basic 6.0 veya Visual C++ 6.0 gibi çok çeşitli COM tabanlı geliştirme ortamlarından kullanılabilir.

Not

Hizmet adı, tüm iletişimler için bir WCF iletişim kanalı kullanır. Bu kanalın güvenlik ve kimlik mekanizmaları, standart COM ve DCOM proxy'lerinde kullanılanlardan farklıdır. Ayrıca, hizmet adı bir WCF iletişim kanalı kullandığından, varsayılan zaman aşımı süresi tüm çağrılar için bir dakikadır.

Hizmet takma adı, yönetilmeyen geliştiriciye WCF Web hizmetlerini çağırmak için kesin olarak türü belirlenmiş, COM'a özgü bir yaklaşım sağlamak için işleviyle birlikte GetObject kullanılır. Bu, WCF Web hizmeti sözleşmesinin yerel, COM tarafından görünür bir tanımını ve kullanılacak bağlamayı gerektirir. Diğer WCF istemcilerinde olduğu gibi hizmet takma adı da hizmete türetilen bir kanal oluşturmalıdır, ancak bu kanal oluşturma işlemi ilk yöntem çağrısında COM programcısı için saydam bir şekilde gerçekleşir.

Diğer WCF istemcileriyle ortak olarak, uygulamalar bilinen adı kullanırken bir hizmetle iletişim kurmak için adresi, bağlamayı ve sözleşmeyi belirtir. Sözleşme aşağıdaki yollardan biriyle belirtilebilir:

  • Yazılan sözleşme – sözleşme, istemci makinesinde COM görünür türü olarak kaydedilir.

  • WSDL sözleşmesi – sözleşme bir WSDL belgesi biçiminde sağlanır.

  • MEX sözleşmesi – sözleşme çalışma zamanında Meta Veri Değişimi (MEX) uç noktasından alınır.

Hizmet Takma Adı Tarafından Desteklenen Parametreler

Aşağıdaki tabloda hizmet adı tarafından desteklenen parametreler gösterilmektedir.

Parametre Açıklama
address Hizmetin URL konumu.
binding Uygulama yapılandırmasından bölüm adını bağlama.
bindingConfiguration Adlandırılmış bağlama bölümünden adlandırılmış bağlama örneği.
contract Hizmet sözleşmesini veya sözleşme adını (MEX'ten) temsil eden arabirim tanımlayıcısı (IID).
wsdl Alternatif bir sözleşme tanımı biçimi sağlayan WSDL belgesi.
spnIdentity Hizmetle iletişim kurmak için kullanılacak sunucu asıl adı (SPN) kimliği.
upnIdentity Hizmetle iletişim kurmak için kullanılacak kullanıcı asıl adı (UPN) kimliği.
dnsIdentity Hizmetle iletişim kurmak için kullanılacak DNS kimliği.
mexAddress Hizmetin Meta Veri Değişimi (MEX) uç noktasının URL konumu.
mexBinding MEX uç noktasına bağlanmak için uygulama yapılandırmasından bölüm adını bağlama.
mexBindingConfiguration MEX uç noktasına bağlanmak için adlandırılmış bağlama bölümünün içinden adlandırılmış bağlama örneği.
bindingNamespace Alınan MEX'ten bağlama bölümü adının ad alanı.
contractNamespace Alınan MEX'ten sözleşmenin ad alanı.
mexSpnIdentity MEX uç noktasıyla iletişim kurmak için kullanılacak sunucu asıl adı (SPN) kimliği.
mexUpnIdentity MEX uç noktasıyla iletişim kurmak için kullanılacak kullanıcı asıl adı (UPN) kimliği.
mexDnsIdentity MEX uç noktasıyla iletişim kurmak için kullanılacak DNS kimliği.
serializer "xml" veya "datacontract" serileştiricisinin kullanımını belirtin.

Not

Tamamen COM tabanlı istemcilerle kullanıldığında bile hizmet takma adı, istemci bilgisayara WCF ve destekleyici .NET Framework 2.0'ın yüklenmesini gerektirir. Hizmet takma adını kullanan istemci uygulamalarının .NET Framework çalışma zamanının uygun sürümünü yüklemesi de kritik önem taşır. Office uygulaması lications içinde takma ad kullanılırken, doğru çerçeve sürümünün yüklendiğinden emin olmak için bir yapılandırma dosyası gerekebilir. Örneğin, Excel ile aşağıdaki metin Excel.exe dosyasıyla aynı dizinde Excel.exe.config adlı bir dosyaya yerleştirilmelidir:

<?xml version="1.0" encoding="utf-8"?>

<configuration xmlns= http://schemas.microsoft.com/.NetConfiguration/v2.0 >

<startup>

<requiredRuntime version="v2.0.50727" />

</startup>

</configuration>

Ayrıca bkz.