连接到CRM 2011 IFD / ADFS中的mscrmservices / 2007 / CrmService.asmx端点

时间:2011-12-15 03:56:16

标签: dynamics-crm dynamics-crm-2011 dynamics-crm-4 crm

我们刚刚从Microsoft Dynamics CRM 4升级到Microsoft Dynamics CRM 2011.大部分升级都进展顺利,但是我有一些自定义代码(为CRM 4编写),它是作为CRM 4 ISV中的ASPX页面实现的夹。自升级以来,此代码已停止工作。

我们的Dynamics CRM 2011服务器设置为On Premise,作为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

我很感激任何人都可以提供任何帮助。

1 个答案:

答案 0 :(得分:3)

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