Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DynamicsGP 2010 eConnect Web服务GetList覆盖CustomerKey_C#_.net_Wcf_Web Services_Dynamics Gp - Fatal编程技术网

C# DynamicsGP 2010 eConnect Web服务GetList覆盖CustomerKey

C# DynamicsGP 2010 eConnect Web服务GetList覆盖CustomerKey,c#,.net,wcf,web-services,dynamics-gp,C#,.net,Wcf,Web Services,Dynamics Gp,我试图使用Web服务从GP返回客户列表,但是在执行查询时遇到了问题。我可以确认与Dynamics数据库的主连接正在工作,因为我可以运行查询来检索公司列表(这是我检索CompanyID密钥的方式,用于客户查询的上下文) 但是,当我执行任何类型的其他查询时,在发送到eConnect的XML中,CompanyKey似乎被设置为零(0)。返回的异常是“Microsoft.Dynamics.Security.NoneExistentSecurityObjectException:安全对象不存在。Key=0

我试图使用Web服务从GP返回客户列表,但是在执行查询时遇到了问题。我可以确认与Dynamics数据库的主连接正在工作,因为我可以运行查询来检索公司列表(这是我检索CompanyID密钥的方式,用于客户查询的上下文)

但是,当我执行任何类型的其他查询时,在发送到eConnect的XML中,CompanyKey似乎被设置为零(0)。返回的异常是“Microsoft.Dynamics.Security.NoneExistentSecurityObjectException:安全对象不存在。Key=0”。当我查看发送到服务的xml时,我注意到元素也被设置为0,即使我显式地将其设置为要查询的公司的值(在本例中是37,我在前面的公司列表查询中检索到了它。)

正在发送的完整XML如下所示:

<?xml version="1.0"?>
<RequestObjects>
  <Context xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/dynamics/2006/01">
    <OrganizationKey xsi:type="CompanyKey">
      <Id>0</Id>
    </OrganizationKey>
    <CurrencyType>Transactional</CurrencyType>
  </Context>
  <CustomerCriteria xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Scope>Return All</Scope>
  </CustomerCriteria>
</RequestObjects>

我的代码基于GP2010 Web服务开发人员直接从Microsoft手动提供的示例。

确保GP中的键和Web服务中的actice目录数据库中的键相同。这可能是Web服务中缺少的键

这方面有techknowledge,您需要运行SQL查询:

如果公司id为math,则进行修复web服务。在此之后,在IIS中将基本身份验证设置为enabled

就我而言,这个解决方案很有帮助

CompanyKey companyKey;
Context context;
DynamicsGPClient wsDynamicsGP = new DynamicsGPClient();
context = new Context();
companyKey = new CompanyKey();
companyKey.Id = 37;
context.OrganizationKey = companyKey;
companies = wsDynamicsGP.GetCustomerList( new CustomerCriteria { }, context );
get company id

SELECT CMPNYNAM, INTERID, CMPANYID
    FROM DYNAMICS.dbo.SY01500