【问题标题】:Connect to mscrmservices/2007/CrmService.asmx endpoint in CRM 2011 IFD/ADFS连接到 CRM 2011 IFD/ADFS 中的 mscrmservices/2007/CrmService.asmx 端点
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 我将 URL 更改为 https://&lt;server&gt;:444/mscrmservices/2007/CrmService.asmx,现在出现以下异常:The request failed with HTTP status 401: Unauthorized. at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
    • 解决了!我使用https://&lt;server&gt;:444/mscrmservices/2007/CrmService.asmx 和内部地址(端口5555 上的http),它工作。谢谢!
    • 很高兴它有帮助。我实际上总是查询注册表以获取服务器 URL。 HKLM\Software\Microsoft\MSCRM,值:ServerUrl。这将为您提供到 /MSCRMServices 的 URL,然后您只需添加您的 /2007/crmservice.asmx。
    猜你喜欢
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多