使用crmsvcutil生成数据上下文类的问题

时间:2011-05-19 01:38:08

标签: dynamics-crm dynamics-crm-4

我正在尝试从Microsoft Dynamics CRM数据库中检索数据。为了获得LINQ功能,我应用了crmsvcutil来生成数据上下文类。以下是我使用的命令行

crmsvcutil /connectionString:"Authentication Type=SPLA; Server= http://our-crm.com; User ID=user; Password=pass" /namespace:Stub.Xrm /dataContextPrefix:MyCorp /out:Xrm.cs

运行命令时,我得到了

Unhandled Exception: System.Net.WebException: The request failed with HTTP status 401: Unauthorized.

错误。通过使用user / pass来评估CRM,我能够访问http://our-crm.com。我怀疑serer的URL是问题所在,但我不确切知道应该使用哪一个。

我使用的CRM版本是4.0

更新2011年5月19日: 我将连接字符串更改为

crmsvcutil /connectionString:"Authentication Type=AD; Server= http://our-crm.com/CRM; User ID=domain\user; Password=pass" /namespace:Stub.Xrm /dataContextPrefix:MyCorp /out:Xrm.cs

现在我要

Unhandled Exception: System.ApplicationException:   0x80040220
  SecLib::CheckPrivilege failed. Returned hr = -2147220960, User: f26255aa-997a-e011-b1ff-0050569e0924, PrivilegeId: a33
11f47-2134-44ee-a258-6774018d4bc3

这是否意味着我没有足够的权限来检索WSDL信息?但是我能够使用浏览器来获取http://our-crm.com/mscrmservices/2007/CrmServiceWsdl.aspx,并且我能够使用相同的凭证将Web引用添加到WebService。

1 个答案:

答案 0 :(得分:0)

如果您使用当前用户的凭据访问Dynamics CRM OnPremise,则必须将Integrated指定为身份验证类型。

因此,您的连接字符串应为

/connectionString:"Authentication Type=Integrated; Server= http://our-crm.com; 

如果您必须指定特定用户,则必须使用AD

/connectionString:"Authentication Type=AD; Server= http://our-crm.com; User ID=user-domain\user-name; Password=user-password

请参阅Connect to the Microsoft Dynamics CRM Server