Dynamics CRM 2011 Online,CrmSvcUtil,代理服务器身份验证失败

本文关键字:代理服务器 身份验证 失败 CrmSvcUtil Dynamics 2011 Online CRM | 更新日期: 2023-09-27 18:26:05

尝试为Dynamics CRM 2011 Online编写插件。

第一步是使用CrmSvcUtil生成实体类的代码。

我想我已经得到了正确的CrmSvcUtil参数(见下文),但当我运行它时,我得到:

正在退出程序,出现异常:元数据包含无法解析的引用:'https://myorg.crm.dynamics.com/XRMServices/2011/Organization.svc?wsdl"。启用跟踪并查看跟踪文件以获取详细信息。

启用跟踪(通过CrmSvcUtil.exe.config)会显示此错误:

--->System.Net.WebException:远程服务器返回错误:(407)需要代理身份验证
位于System.Net.HttpWebRequest.GetResponse()
位于System.ServiceModel.Description.MetadataExchangeClient。MetadataLocationRetriever.DownloadMetadata(TimeoutHelper TimeoutHelper)

这是有道理的,因为我所在的网络有一个代理服务器,需要我的网络用户名/密码才能访问互联网。当然,此用户名/密码与Dynamics CRM的用户名/密码不同。

那么,我如何让CrmSvcUtil将正确的用户名/密码传递给代理?

这是我在CrmSvcUtil:中使用的配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="url" value="https://myorg.crm.dynamics.com/XRMServices/2011/Organization.svc"/>
    <add key="codeCustomization" value="Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration"/>
    <add key="out" value="XRM'Xrm.cs"/>
    <add key="namespace" value="Xrm"/>
    <add key="username" value="myusername@fordynamics.com"/>
    <add key="password" value="mydynamicspassword"/>
    <add key="deviceid" value="my device ID"/>
    <add key="devicepassword" value="my device password"/>
    <add key="servicecontextname" value="XrmServiceContext" />
    <add key="servicecontextprefix" value="Xrm" />
  </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>

Dynamics CRM 2011 Online,CrmSvcUtil,代理服务器身份验证失败

啊哈!我想我破解了。

我在CrmSvcUtil.exe.config文件中添加了以下内容:

<system.net>
  <defaultProxy useDefaultCredentials="true">
    <proxy proxyaddress="http://proxyaddress:port" />
  </defaultProxy>
</system.net>

我不再收到"代理身份验证"错误。

(我得到了一个不同的错误,但这是关于缺少程序集的问题,所以我想我可能会弄清楚……)

我遇到了同样的错误,我的问题是防火墙阻止了来自CrmSvcUtil的传出连接!