【发布时间】:2011-12-15 03:56:16
【问题描述】:
我们刚刚从 Microsoft Dynamics CRM 4 升级到 Microsoft Dynamics CRM 2011。大部分升级进展顺利,但是我有一些自定义代码(为 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)
我提前感谢任何人可以提供的任何帮助。
【问题讨论】:
标签: dynamics-crm dynamics-crm-2011 dynamics-crm-4 crm