我们刚刚从Microsoft Dynamics CRM 4升级到Microsoft Dynamics CRM2011。大多数升级进展顺利,但是我有一些自定义代码(为CRM 4编写),已在CRM 4 ISV文件夹中作为ASPX页面实现。自升级以来,该代码已停止工作。

我们的Dynamics CRM 2011服务器是作为IFD部署在内部部署的。

该代码按如下方式连接到CRM服务器:

using (new CrmImpersonator())
         {
             string crmurl = "https://<server>:444/<org>/mscrmservices/2007/CrmService.asmx";
             string orgname = <org>;

             CrmAuthenticationToken token = CrmAuthenticationToken.ExtractCrmAuthenticationToken(context, orgname);
             token.OrganizationName = orgname;

             token.AuthenticationType = 0;

             CrmService service = new CrmService();
             service.Credentials = System.Net.CredentialCache.DefaultCredentials;
             service.CrmAuthenticationTokenValue = token;
             service.Url = crmurl;

             WhoAmIRequest who = new WhoAmIRequest();
             WhoAmIResponse whoResponse = (WhoAmIResponse)service.Execute(who);


发送WhoAmIRequest后,我收到以下异常:

The request failed with the error message:
--
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="https://<server>:444/<org>/mscrmservices/2007/CrmService.asmx">here</a>.</h2>
</body></html>

--.

at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Microsoft.Crm.SdkTypeProxy.CrmService.Execute(Request Request)
at ForecastConverterWeb.CashflowForecast.ToCrm(HttpContext context)
at ForecastConverterWeb._Default.submitbtn_click(Object sender, EventArgs e)


似乎当代码尝试将请求发送到https://:444 // mscrmservices / 2007 / CrmService.asmx时,页面会返回一个链接,以重定向到...本身(https://:444 // mscrmservices / 2007 / CrmService.asmx)。

我尝试使用内部地址(端口5555),外部IFD地址(端口444上的https)和内部IFD地址(端口444上的https),结果均相同。我知道在CRM 2011中ISV会被贬值,但是考虑到重新开发该软件所花费的时间(考虑到它是受支持的代码,我不必这样做),我宁愿得到可以正常工作(根据此内容:http://msdn.microsoft.com/en-us/library/gg309571.aspx

提前感谢任何人可以提供的任何帮助。

最佳答案

您的代码使您看起来像将组织名称放在主机和/2007/crmservice.asmx的路径之间。不要那样做我知道您必须在内部在ISV目录中自定义aspx / asmx文件时使用组织名称,但是据我所试,它不适用于crmservice.asmx。

关于dynamics-crm - 连接到CRM 2011 IFD/ADFS中的mscrmservices/2007/CrmService.asmx终结点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8514922/

10-10 23:33