BizTalk создает исключение NullReferenceException между принимающим адаптером и конвейером.
Я разработал конвейер BizTalk, и он отлично работает на виртуальной машине разработки, но не в рабочей среде. В обеих средах запущен BizTalk Server 2009.
Все компоненты в моем конвейере отлично работают на других конвейерах. Исключение, которое я получаю, в журнале событий приложений Windows (все между <
а также >
не имеет значения)
Сообщение, полученное адаптером "ФАЙЛ" в месте получения <Местоположение получения> с URI
, приостанавливается. Сведения об ошибке: произошла ошибка при выполнении конвейера приема: Источник: "Неизвестный" Порт приема: : Причина: ссылка на объект не установлена для экземпляра объекта.
Идентификатор сообщения:
InstanceID: <идентификатор экземпляра>
Я знаю, что никакие компоненты не выполняются, потому что первый компонент записывает что-то в базу данных пользовательского приложения отслеживания. Это не происходит в этом конвейере, и тот же компонент прекрасно работает для всех других конвейеров, которые его используют.
Все компоненты моего конвейера также используются в других конвейерах, ни один из которых не создает такой проблемы.
Так что на самом деле это исключение происходит между адаптером и конвейером. Изначально используемый адаптер был WCF-Custom
с sqlBinding
, но используя File
Адаптер приводит к тому же исключению.
Теперь запись журнала событий является единственной трассировкой, которую я имею для всех сообщений, проходящих через этот конвейер. Там нет приостановленных экземпляров. Когда я использую конвейеры PassThrough или XMLReceive по умолчанию, это просто работает.
Куда мне идти отсюда? Что может быть не так? Есть ли способ получить какую-то трассировку стека для этого исключения, чтобы помочь отследить его?
1 ответ
В отчаянии я начал развертывать конвейер снова и снова, оставляя разные компоненты каждый раз, пока не выследил преступника.
Как оказалось, моя локальная ВМ разработки (и Visual Studio) вытащила один из компонентов из GAC, а не из стандарта C:\Program Files (x86)\Microsoft BizTalk Server 2009\Pipeline Components
папка. Эта сборка не соответствует компоненту в производственной среде.