Исключение NullReferenceException, выброшенное в System.Web.Services - PullRequest
0 голосов
/ 05 апреля 2019

У нас есть две службы, написанные на веб-службах 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}
...