У нас есть две службы, написанные на веб-службах ASP.NET с VB.NET, которые общаются друг с другом через сгенерированный прокси-класс.
Только для одной конечной точки (из многих других), когда мы вызываем службу B из службы A, NullReferenceException
добавляет WriteHeaders
функцию внутри System.Web.Services.Protocols
при создании полезной нагрузки XML (в службе A) , Обратите внимание, что проблема не может быть воспроизведена на компьютере разработчика или в конфигурации debug
(только release
).
До сих пор я пытался подключить удаленный отладчик с символами .Net, загруженными в среде, где проблема может быть воспроизведена, но, как указано выше, при развертывании сборки конфигурации debug
она работает просто отлично.
Кроме того, мы записали все параметры и заголовки для этого вызова, и значения одинаковы для рабочего и нерабочего сценариев.
Сервисный звонок с прокси-клиентом
...
_serviceClient.HeaderNameValue = New HeaderName(params)
_serviceClient.EndpointOnServiceB(params)
...
Примечание: при вызове EndpointOnServiceB
он попадает в файл Reference.vb
, где я записал все параметры и значение заголовка. Все выглядит хорошо.
Мы делаем то же самое для других конечных точек, и они работают просто отлично.
Трассировка стека
0
{"assembly":"System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Web.Services.Protocols.SoapHeaderHandling.WriteHeaders","level":0,"line":0}
1
{"assembly":"System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Web.Services.Protocols.SoapHttpClientProtocol.Serialize","level":1,"line":0}
2
{"assembly":"System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke","level":2,"line":0}