0

我是 Dynamics CRM 2011 Online 的新手。我正在尝试使用 CrmSvcUtil.exe 生成数据上下文类

这是我的命令:

CrmSvcUtil.exe /out:E:\OrgXrm.cs
/url:https://mdtestuser.api.crm5.dynamics.com/XRMServices/2011/Organization.svc
/username:MDTest@MDTestUser.onmicrosoft.com /password:Password

但它给出了一个错误:

Exiting program with exception: 验证消息的安全性时发生错误。启用跟踪并查看跟踪文件以获取更多信息。CrmSvcUtil.exe 错误:0:由于异常退出程序,退出代码为 2:Sy stem.ServiceModel.FaultException:验证消息的安全性时出错。

4

4 回答 4

1

当我在 Microsoft 论坛中遇到可能有帮助的帖子时,我正在研究另一个问题。我记得这个问题,所以我想我会发布另一个答案,因为这个问题有一个积极的解决方案。

引用:

我以前处理过这个。验证服务器和客户端计算机上的时间和日期设置(包括时区)是否正确设置。 似乎如果两台机器不同步超过一两分钟就会导致这个问题

在我的客户端计算机上,在设置服务器时钟以使其正确连接后,出于某种原因,我还必须重新启动 Visual Studio。

http://social.microsoft.com/Forums/en-US/0ad9a5ee-dcce-4146-a1e6-20eafdccff46/crmsvcutil-error-an-error-occurred-when-verifying-security-for-the-message?forum= CRM开发

于 2014-02-18T18:09:12.197 回答
0

JIC有人得到同样的错误。

我建立了联系,并且能够从 CRM 在线生成上下文。唯一的区别在于 URL,我有下一个:

https://architecture2.api.crm.dynamics.com/XRMServices/2011/Organization.svc

你看到这说crm不是crm5但这取决于你的组织,以获得正确的:打开你的组织,然后设置->自定义->开发人员资源->组织数据服务

我执行CrmSvcUtil.exe的命令行是:

CrmSvcUtil.exe    
/url:"https://architecture2.api.crm.dynamics.com/XRMServices/2011/Organization.svc"
/out:"E:\Context.cs"
/username:MyUser@architecture2.onmicrosoft.com
/password:Password

其他帐户应该具有所需的权限,我的帐户具有系统管理员角色。

于 2013-05-16T16:48:11.617 回答
0

要完全理解您的错误,您应该使用启用跟踪的配置文件,这是配置文件的示例:

<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="servicecontextname" value="XrmServiceContext"/>
    <add key="codecustomization" value="Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration"/>
    <add key="username" value="domain\user"/>
    <add key="password" value="password"/>
    <add key="out" value="XrmEntitiesReference.cs" />
  </appSettings>
  <system.diagnostics>
    <trace autoflush="false" indentsize="4">
      <listeners>
        <add name="configConsoleListener" type="System.Diagnostics.ConsoleTraceListener">
          <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" />
        </add>
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

从这里查看示例:

http://www.resultondemand.nl/support/sdk/06abab26-40fc-4b85-9a2a-5e68903ea138.htm

于 2013-02-19T12:01:57.467 回答
0

我知道这是一个远射,但是您的密码最近更改了吗?

使用这样的命令字符串,很多人使用 .bat 文件来自动执行该过程。

我不喜欢在 .bat 文件中使用密码,因为:

  1. 它们不安全(很明显,我知道)
  2. 维护。每次更新密码时,您都必须记住更新每个脚本。或者痛苦地排除每一个故障,最后记住密码是嵌入的。

为了缓解这种情况,我使用带有 /P 参数的 SET 在 .bat 文件执行期间提示输入密码。

不完美,但比硬编码密码要好得多。

这是使用您提供的命令字符串的示例:

rem ----- 开始脚本 -----

SET /P pwd=密码:

CrmSvcUtil.exe /out:E:\OrgXrm.cs /url: https://mdtestuser.api.crm5.dynamics.com/XRMServices/2011/Organization.svc /username:MDTest@MDTestUser.onmicrosoft.com /password: %密码%

CLS

设置密码=。

rem ----- 结束脚本 -----

在此示例中,SET /P 告诉命令处理器设置环境变量并提示输入。
“pwd”是正在设置的环境变量。
“%pwd%”是环境变量的实际使用。
“密码:”是运行.bat文件时将显示的提示字符串。
“CLS”清除屏幕。
“密码=。” 将环境变量设置为“.” 所以密码不会留在环境中。
您可以忽略以“rem”开头的行,因为它们只是备注。

该解决方案的“不完美”部分是您的密码在您键入时可见。但是,通过在提示后立即清除屏幕,它会立即从屏幕上清除。还有其他方法可以防止在您键入时显示密码,但是我认为它们过于复杂或需要下载一些额外的位。使用 .bat 文件的想法是它可以快速轻松地更新,因此维护成本低。

SET /P 在我的情况下运行良好,因为每当我需要刷新我的文件时,没有人会看着我的肩膀,并且一旦写入 .bat 文件就几乎没有维护。

于 2014-02-12T17:05:51.740 回答