2015-12-04 44 views
0

我正在Sitecore的移動SDK與Sitecore的8.我面對異常如下:如何解決「發生異常:[Sitecore Mobile SDK]公鑰未正確接收」?

出現異常:Sitecore的移動SDK]公開密鑰沒有被正確接收

類似的這篇文章https://forums.xamarin.com/discussion/44352/sitecore-mobile-sdk-for-xamarin

我該如何解決這個bug?

更新

我的代碼(參考文獻: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。淨/上傳/ sdn5 /模塊/ 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。

回答

2

首先,我假設您已啓用Sitecore項目Web API。如果沒有,那也會給這個問題。

當我遇到這個錯誤時,我按照this blog post中的步驟修復了它。

它的缺點是:模擬器不會使用您的主機文件,而是它自己的。所以模擬器不會知道什麼http://sitecore.local,這意味着Sitecore無法驗證它可以與它交談。

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

+0

好的,你已經打開了ItemWebAPI,但你需要更新你的主機名。或者,也可以瀏覽到http://2.2.2.2(與模擬器的127.0.0.1相同) – Trayek

+0

在主機和IIS上將http://sitecore.local更改爲http:// sitecorelocal。它的工作,但在我的情況是沒有必要改變本地IP。謝謝 ! –

+0

我發現,biside啓用sitecore web api,它必須使用[<使用權限android:name =「android.permission.INTERNET」/>]。參考:https://developer.xamarin.com/guides/testcloud/calabash/quickstarts/android-studio/build-apk/ –