【发布时间】:2012-01-25 10:44:02
【问题描述】:
我有一个 ASP.NET Web 服务并试图从 BizTalk 调用它。现在我已经管理了实际输入的 web 服务,但是无法映射对象并且总是返回 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 服务器上的错误信息是“篮子无法映射到服务上。”
【问题讨论】:
-
您是否对服务使用“添加服务引用”?该服务是 asmx 服务吗?
-
是的,我有对该服务的服务引用,但它是一个 svc 服务。
-
我不清楚您的确切问题是什么。你能发布你的错误信息吗
-
我添加了代码 sn-p 在我的原始帖子中引发了错误
-
你是如何构建服务请求消息的?
标签: web-services namespaces biztalk nullreferenceexception