2010-11-19 7 views

cevap

2

following page in MSDN özlü WCF adaptörleri ile BizTalk dışında iletileri gönderirken özel SABUN başlıklarını kullanabilirsiniz açıklar.

Temel olarak, doğrudan BizTalk dışında BizTalk mesajlarının içeriğini gönderemez. Bu anlamsız olurdu. Bunun yerine, özel SOAP başlıkları aracılığıyla WCF bağdaştırıcısına gönderilmek üzere BizTalk iletilerinizin bağlamındaki özelliklerin bir alt kümesini seçebilirsiniz. Özel SABUN Başlıkları Giden WCF İsteği giden bir istekle ilişkili

SABUN başlıklarını Taşıma

açıkça giden mesajın bağlamına yazılmalıdır.

WCF Bağdaştırıcıları kullanarak

, SABUN Başlıkları WCF.OutboundCustomHeaders bağlamda yerleşik özelliğiyle tanımlanır. Bu özellik, ek < başlıklarını > etiketi içine sarılmış bütün özel SABUN başlıklarını tutar.

OutboundMessage(WCF.OutboundCustomHeaders) = "" + 
    "<headers>" 
    "<tns1:Header1 xmlns:tns1='http://tns1'>" + 
    "</tns1:Header1>" + 
    "<tns2:Header2 xmlns:tns2='http://tns2'>" + 
    "</tns2:Header2>" + 
    "</headers>" + 
    ""; 

, lütfen unutmayın özel sabun Başlıkları < tns1 olduğu: Başlık1 > ve < tns2: Başlık2 > gösterim için kullanılan

Başlıkları Expression şeklinde aşağıdaki sözdizimini bir düzenleme içinden belirtilebilir Yukarıdaki amaçlar WCF servis sözleşmenizin bir parçası olmalıdır. Tüketilen WCF hizmeti için bir hizmet başvurusu oluşturduğunuzda, bu özel SOAP başlıkları, orkestrasyonunuzda oluşturulan şemalar olarak kullanılabilir.

Şimdi özel SABUN Başlıkları belirtmek bilmelerini Özel SABUN Üstbilgisinde Özgül Bağlam Özellikler 'Gönder Nasıl

, özel SOAP mesajlarınızın bağlamında belirli özelliklerini göndermek için bu sözdizimini kullanabilirsiniz böylece gibi başlıklar: yukarıdaki örnekte

OutboundMessage(WCF.OutboundCustomHeaders) = 
    System.String.Format(
    "" + 
    "<headers>" 
    "<tns1:Header1 xmlns:tns1='http://tns1'>" + 
    " <tns1:Property1>{0}</tns1:Property1>" + 
    " <tns1:Property2>{1}</tns1:Property2>" + 
    "</tns1:Header1>" + 
    "</headers>" + 
    "" 
    , InboundMessage(FILE.ReceivedFileName) 
    , InboundMessage(BTS.MessageType) 
)); 

iki yerleşik içerik özellikleri FILE.ReceivedFileName ve BTS.MessageType seçilir ve özel sabun başlığı içinde yazılmıştır. Gerçek bir dünya senaryosunda, özelliklerini kullanmadan önce bağlamda olup olmadığını kontrol etmek istersiniz. Ayrıca herhangi bir özel bağlam özelliğini kullanabilirsiniz

, bunlar uygun bir Mülkiyet Şema ilan edilmiştir sağladı.

+0

Bu doğru değil. Biztalk mesajı, çoklu kayıt EDI dosyasını işlemenin bir sonucudur. Her kayıt bireysel BizTalk mesajlarına ayrılır. EDI başlık bilgisi, her bir BizTalk mesajında ​​içerik özelliklerine dönüşür. Yani bu bilgi anlamsız değil. – Rich

+0

Eh, dediğim gibi, anlamsız * dışında * BizTalk. Gerçekten ihtiyacınız olan şey, * BizTalk mesajlarınızın içeriğindeki özellikleri özel WCF Sabun başlıklarına dönüştürmek * veya * uyarlamaktır. Bu Sabun Başlıkları, harici hizmetle yapılan sözleşmenin bir parçası olmalıdır. Lütfen, bağlandığım sayfaya bakın. WCF ile SOAP bağdaştırıcıları arasındaki Sabun başlıklarının işlenmesindeki farklılıklara genel bir bakış gerekiyorsa, lütfen bloguma bir göz atın: http://maximelabelle.wordpress.com/2010/09/16/handling-soap-headers -in-biztalk-WCF-hizmetler / –