0

我正在使用 Sitecore 8 开发 Sitecore Mobile SDK。我面临以下异常:

发生异常:[Sitecore Mobile SDK] 未正确接收公钥

类似这篇文章https://forums.xamarin.com/discussion/44352/sitecore-mobile-sdk-for-xamarin

我怎样才能修复这个错误?

更新

我的代码(参考:https ://components.xamarin.com/view/Sitecore.Mobile.SDK ):

private async Task<string> GetContent()
    {
        var instanceUrl = "http://sitecore.local";
        using (var credentials = new SecureStringPasswordProvider("admin", "b"))
        using
        (
            var session = SitecoreWebApiSessionBuilder.AuthenticatedSessionWithHost(instanceUrl)
                            .Credentials(credentials)
                            .WebApiVersion("v1")
                            .DefaultDatabase("web")
                            .DefaultLanguage("en")
                            .MediaLibraryRoot("/sitecore/media library")
                            .MediaPrefix("~/media/")
                            .DefaultMediaResourceExtension("ashx")
                            .BuildSession()
        )
        {
            var request = ItemWebApiRequestBuilder.ReadItemsRequestWithPath("/sitecore/content/home")
                            .Database("web")
                            .Language("en")
                            .Build();
            try
            {
                var respond = await session.ReadItemAsync(request);

                ISitecoreItem item = respond[0];
                var strContent = item["Title"].RawValue;

                return strContent;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("Exception occured: " + ex.Message);
            }
            return "";
        }
    }

更新 1:

@Trayek,我更新了我的问题:来自“sdn.sitecore.net/upload/sdn5/modules/sitecore%20item%20web%20api/sitecore_item_web_api_developer_guide_sc66-71-usletter.pdf”。我已更改 Sitecore.ItemWebApi.config 和 Sitecore.Speak.ItemWebApi.config 的安全性。模拟器:我在 Genymotion 和 Xamarin_Android_API_15 上进行了测试。

4

1 回答 1

3

首先,我假设您已启用 Sitecore Item Web API。如果不是那也会给出这个问题。

当我遇到这个错误时,我按照这篇博客文章中的步骤为我修复了它。

简而言之:模拟器不会使用您的主机文件,而是使用它自己的文件。所以模拟器不会知道http://sitecore.local是什么,这意味着 Sitecore 无法验证它是否可以与之对话。

博客文章向您展示了如何更新模拟器的主机文件,以便您仍然可以使用http://sitecore.local

于 2015-12-04T10:28:00.000 回答