2010-01-27 5 views
2

Мне нужно знать, какой принимающий порт или местоположение полученное сообщение было получено путем изучения имени порта/местоположения приема или заполнения свойства контекста либо имя или какую-то статическую строку, которую я могу определить на каждом порту/местоположенииОпределение принимаемого порта или местоположения для сообщения в BizTalk 2006

Я буду использовать эту информацию в пользовательском дизассемблере, чтобы выполнить некоторую работу над сообщением, но мне нужно знать, в каком порту это сообщение, чтобы я знал какую работу мне нужно сделать для сообщения. Я довольно уверен, что знаю, как читать свойства контекста в настраиваемом компоненте, подобном этому, но я просто не могу понять, как его заполнить раньше. И я не могу понять, был ли порт, в который приходит сообщение, отмечается в любом месте самого сообщения.

ответ

5

Имеет хороший список доступных свойств контекста на Abhilash's blog.

То, что вы хотите это ReceivePortName, так что в вашем трубопроводе вы хотите что-то вроде:

public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)  
{  
    IBaseMessageContext context = pInMsg.Context; 
    string portName = context.Read("ReceivePortName", "http://schemas.microsoft.com/BizTalk/2003/system-properties").ToString(); 
} 
+0

спасибо Давидова было точным решением мне было нужно. –