这是一项简单的任务,但我浪费的时间不止一天。这就是为什么来找你。请帮我解决这个问题。
我的要求非常简单,我有一个ASP.NET项目。我在线CRM中有一个实体
实体名称:“员工”和字段是“姓名,年龄,性别”
我无法在我的asp.net项目中添加CRM Dlls。所以我必须使用REST服务。
我添加了服务参考https://myoffice.crm5.dynamics.com/xrmservices/2011/organization.svc?wsdl
这是我正在使用的代码
OrganizationServiceClient orgClient = new OrganizationServiceClient();
orgClient.ClientCredentials.Windows.ClientCredential = new System.Net.NetworkCredential("admin@something.com", "mypassword");
Entity myContact = new Entity();
myContact.LogicalName = "Employee"; //Is it right? i must provide it here right.
ConsoleApplication1.ServiceReference2.AttributeCollection myAttColl = new ConsoleApplication1.ServiceReference2.AttributeCollection();
myAttColl.Add(new KeyValuePair<string, object>("Name","Emp1"));
myAttColl.Add(new KeyValuePair<string, object>("Age", "26"));
myAttColl.Add(new KeyValuePair<string, object>("Gender", "Male"));
myContact.Attributes = myAttColl;
try
{
orgClient.Create(myContact);
}
catch (Exception ex)
{
}
我在运行orgClient.Create(myContact)时收到“验证邮件安全性时出错”错误。
无论我到目前为止做了什么。这是我的要求,一个非常简单的使用REST服务将我的自定义实体添加到在线CRM中的条目。我将在名为http://xyz.com的单独域中运行我的web应用程序。从这里开始,我需要将这些条目添加到在线CRM中。
任何帮助?
答案 0 :(得分:1)
答案 1 :(得分:1)
REST服务不会针对外部应用程序公开,它仅适用于内部应用程序。您可以在本地部署中解决这个问题,但在CRM Online中我没有解决方法。如果添加CRM程序集并在C#中执行此操作,则会更好。此外,使用REST服务,您严格限制在CRUD操作中,并且您无法执行分配或更改状态等操作。在我看来,SOAP服务是优越的,但它仍然无法从外部Web应用程序调用。
请参阅此链接阅读以下内容的说明 - Data Access Using JavaScript
注意强>
外部应用程序无法使用这些Web服务,因为Microsoft Dynamics CRM提供了身份验证。