Определение порта приема или местоположения для сообщения в BizTalk 2006 - PullRequest
2 голосов
/ 28 января 2010

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

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

1 Ответ

5 голосов
/ 28 января 2010

Существует хороший список доступных свойств контекста в блоге Абхилаша .

То, что вы хотите, это 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();
}
...