3

这是一项简单的任务,但我浪费了一天多的时间。这就是为什么来找你。请帮助我摆脱这个问题。

我的要求很简单,我有一个 ASP.NET 项目。我在在线 CRM 中有一个实体

实体名称:“员工”,字段为“姓名、年龄、性别”

我无法在我的 asp.net 项目中添加 CRM Dll。所以我必须使用 REST 服务。

  1. 我添加了服务参考https://myoffice.crm5.dynamics.com/xrmservices/2011/organization.svc?wsdl

  2. 这是我正在使用的代码

    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 应用程序。从这里,我需要将条目添加到 Online CRM 中。

有什么帮助吗?

4

2 回答 2

1

REST 服务不向外部应用程序公开,它仅用于内部应用程序。您可能能够在内部部署中解决此问题,但在 CRM Online 中,没有我知道的解决方法。如果您添加 CRM 程序集并在 C# 中执行此操作,您的情况会好得多。此外,使用 REST 服务,您只能执行 CRUD 操作,并且无法执行分配或更改状态等操作。在我看来,SOAP 服务更胜一筹,但仍然无法从外部 Web 应用程序调用它。

请参阅此链接上的以下注释 -使用 JavaScript 进行数据访问

笔记

外部应用程序无法使用这些 Web 服务,因为身份验证由 Microsoft Dynamics CRM 提供。

于 2012-11-01T23:29:00.380 回答
1

这可能看起来很奇怪,但原因是服务器上的时钟和客户端上的时钟肯定不同步。

您所要做的就是检查:

  1. 客户端时钟与服务器时钟同步。
  2. 客户端和服务器都在日间节省设置上进行协调

问候,

凯文

资料来源:这里这里

于 2012-08-02T09:36:56.950 回答