BizTalk与WCF服务 - 服务中的null对象

时间:2012-01-25 10:44:02

标签: web-services namespaces biztalk nullreferenceexception

我有一个ASP.NET Web服务,我试图从BizTalk中调用它。现在我已经设法实际输入了webservice,但是对象无法映射并且总是返回NULL。在尝试和测试之后,我终于发现使映射失败的一件事是根节点上的命名空间。现在我不知道如何删除该命名空间,或者以某种方式尝试调整web服务以使用命名空间更好?

我的服务方式:

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 个答案:

答案 0 :(得分:2)

我放弃了实体框架并使用为WCF服务定义的命名空间创建了自己的对象,现在它可以工作了。感谢您的帮助,我将继续玩它,直到我了解更多=)