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

时间:2012-02-28 12:36:02

标签: c# dynamics-crm-2011 dynamics-crm

尝试为Dynamics CRM 2011 Online编写plugin

第一步是使用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>

2 个答案:

答案 0 :(得分:6)

啊哈!我想我破解了它。

我将以下内容添加到CrmSvcUtil.exe.config文件中:

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

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

(我得到了一个不同的错误,但是关于丢失的程序集,所以我想我可以想出来......)

答案 1 :(得分:0)

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