BizTalk с сервисом WCF - нулевой объект в сервисе - PullRequest
1 голос
/ 25 января 2012

У меня есть веб-служба ASP.NET, и я пытаюсь вызвать ее из BizTalk. Теперь мне удалось ввести веб-сервис, но объект не может быть отображен и всегда возвращает NULL. После попытки и тестирования я, наконец, обнаружил, что единственное, что делает его неудачным при сопоставлении, - это пространство имен на корневом узле. Теперь я понятия не имею, как я могу удалить это пространство имен или было бы лучше как-то попытаться настроить веб-сервис для использования пространства имен?

Мой метод обслуживания:

public bool CreateBasket(Basket basket)
        {
            if(basket == null)
                throw new Exception(string.Format("Basket could not be mapped on the service."));

            _entities.AddToBaskets(basket);

            foreach (var item in basket.Items)
            {
                _entities.AddToItems(item);
            }

            return _entities.SaveChanges() > 0;
        }

Объект корзины создается моделью сущности.

Этот звонок работает:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreateBasket xmlns="http://tempuri.org/">
<basket xmlns:ns0="http://schemas.datacontract.org/2004/07/OC.SampleCustomer.WCFService" xmlns:ns1="http://schemas.datacontract.org/2004/07/System.Data" xmlns:ns2="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/">
<ns0:BillingId>5</ns0:BillingId>

Этот звонок не работает:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreateBasket xmlns="http://tempuri.org/">
<ns0:basket xmlns:ns0="http://schemas.datacontract.org/2004/07/OC.SampleCustomer.WCFService" xmlns:ns1="http://schemas.datacontract.org/2004/07/System.Data" xmlns:ns2="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/">
<ns0:BillingId>5</ns0:BillingId>

Редактировать BizTalk получает ошибку, которую я добавляю в свой метод обслуживания в теле получения. Поэтому мое сообщение об ошибке на сервере biztalk: «Невозможно сопоставить корзину в службе».

1 Ответ

2 голосов
/ 26 января 2012

Я отказался от структуры сущностей и создал свои собственные объекты с определенными пространствами имен для службы WCF, и теперь это работает.Спасибо за помощь, я буду продолжать играть с ней, пока не пойму больше =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...