首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不依赖上下文的前提下从Siverlight应用程序连接到CRM 2015?

如何在不依赖上下文的前提下从Siverlight应用程序连接到CRM 2015?
EN

Stack Overflow用户
提问于 2015-05-07 11:33:41
回答 2查看 466关注 0票数 1

我正在创建一个Silverlight应用程序,它应该从CRM中检索数据。我尝试了教程这里,但由于调用GetServerBaseUrl时上下文的无效,我未能在Visual中调试应用程序

代码语言:javascript
复制
Uri serviceUrl = CombineUrl(GetServerBaseUrl(), "/XRMServices/2011/Organization.svc/web");

我知道我可以使用连接字符串和来自问题的SDK中的dll连接到CRM,但是提供的第一个链接已经中断,我看不到示例。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-07 12:15:46

该代码适用于Dynamics 2011,并使用函数getServerUrl。该功能已被宣布为2011年CRM的过时功能,并已从Dynamics 2015中删除。

幸运的是,您只需对示例代码做一个小修改:

代码语言:javascript
复制
public static Uri GetServerBaseUrl()
{
    string serverUrl = (string)GetContext().Invoke("getClientUrl");
    //Remove the trailing forwards slash returned by CRM Online
    //So that it is always consistent with CRM On Premises
    if (serverUrl.EndsWith("/"))
        serverUrl = serverUrl.Substring(0, serverUrl.Length - 1);

    return new Uri(serverUrl);
}

在这里,文字"getServerUrl“被"getClientUrl”取代。

票数 1
EN

Stack Overflow用户

发布于 2015-05-08 08:18:49

除了Henk的答案,这里还有我们使用的函数的修改版本,它适用于旧的和新的方法,并最终回到使用硬编码的值。这允许我们在visual studio中进行调试,而不必部署到CRM中。

代码语言:javascript
复制
public static string GetServerBaseUrl(string FallbackValue = null)
    {


        try
        {
            string serverUrl = (string)GetContext().Invoke("getClientUrl");
            //Remove the trailing forwards slash returned by CRM Online
            //So that it is always consistent with CRM On Premises
            if (serverUrl.EndsWith("/"))
            {
                serverUrl = serverUrl.Substring(0, serverUrl.Length - 1);
            }

            return serverUrl;
        }
        catch
        {
            //Try the old getServerUrl
            try
            {
                string serverUrl = (string)GetContext().Invoke("getServerUrl");
                //Remove the trailing forwards slash returned by CRM Online
                //So that it is always consistent with CRM On Premises
                if (serverUrl.EndsWith("/"))
                {
                    serverUrl = serverUrl.Substring(0, serverUrl.Length - 1);
                }

                return serverUrl;
            }
            catch
            {
                   return FallbackValue;   
            }
        }

    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30099865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档