Возможная проблема параллелизма.NET XmlSerializer?

У нас есть приложение, в котором клиент.NET потребляет веб-сервисы Java, и у нас возникла очень неприятная проблема параллелизма. Я разместил ServletFilter на стороне Java, чтобы регистрировать входящее http-сообщение мыла. И 99,9% этих запросов правильно отформатированы, однако, каждый раз, когда мыльное сообщение, отправляемое со стороны.NET, имеет неправильно сформированное объявление "xmlns" в параметре IN/OUT, которое передается в заголовке мыла.

Элемент "stateId" выглядит так:

<soap:Header>
<stateId xmlns="http://webservice.lassen.landacorp.com <http://webservice.lassen.landacorp.com/> ">
.
.
.
</stateId></soap:Header>

Правильно отформатированные мыльные сообщения выглядят так:

<soap:Header>
<stateId xmlns="http://webservice.lassen.landacorp.com">
.
.
.
</stateId></soap:Header>

Сгенерированный код.NET для этого типа выглядит следующим образом:

namespace landacorp.common.datatypes {
    [Serializable]
    [XmlRoot("stateId", Namespace = "http://webservice.lassen.landacorp.com", IsNullable = true)]
    [DebuggerStepThrough]
    [XmlType(Namespace = "http://xml.business.lib.landacorp.com")]
    [GeneratedCode("LandaWsdl", "1.0.0.0")]
    [DesignerCategory("code")]
    public class StateIdentifier : SoapHeader {

Вот как сгенерированный класс веб-сервиса выглядит для рассматриваемого метода:

[WebServiceBinding(Name = "RunUserDefinedWindowBinding", Namespace = "http://runuserdefinedwindow.webservice.lassen.landacorp.com/")]
[DesignerCategory("code")]
[GeneratedCode("LandaWsdl", "1.0.0.0")]
[DebuggerStepThrough]
public class RunUserDefinedWindowService : SoapHttpClientProtocol {
    public RunUserDefinedWindowService();

    public StateIdentifier stateId { get; set; }
.
.
.
    [SoapHeader("stateId", Direction = SoapHeaderDirection.InOut)]
    [SoapDocumentMethod("", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Bare)]
    public retrieveRecordResponse retrieveRecord(retrieveRecord retrieveRecord1);

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

0 ответов

Другие вопросы по тегам