Xamarin.android Xamarin的Sitecore移动SDK

Xamarin.android Xamarin的Sitecore移动SDK,xamarin.android,sitecore,sitecore6,sitecore-mobile-sdk,Xamarin.android,Sitecore,Sitecore6,Sitecore Mobile Sdk,我正在使用Xamarin Android开发Sitecore移动SDK。我从下载了示例项目。 我根据我的要求修改了代码,更改了instanceUrl和凭据,并执行了代码,但没有显示输出。我的应用程序输出显示: [MonoDroid] UNHANDLED EXCEPTION: [MonoDroid] Sitecore.MobileSDK.API.Exceptions.RsaHandshakeException: [Sitecore Mobile SDK] Public key not receiv

我正在使用Xamarin Android开发Sitecore移动SDK。我从下载了示例项目。 我根据我的要求修改了代码,更改了instanceUrl和凭据,并执行了代码,但没有显示输出。我的应用程序输出显示:

[MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] Sitecore.MobileSDK.API.Exceptions.RsaHandshakeException: [Sitecore Mobile SDK] Public key not received properly ---> System.Xml.XmlException: Document Type Declaration (DTD) is prohibited in this XML.  Line 4, position 10.
[MonoDroid]   at Mono.Xml2.XmlTextReader.ReadDoctypeDecl () [0x00000] in <filename unknown>:0 
[MonoDroid]   at Mono.Xml2.XmlTextReader.ReadDeclaration () [0x00000] in <filename unknown>:0 
[MonoDroid]   at Mono.Xml2.XmlTextReader.ReadContent () [0x00000] in <filename unknown>:0 
[MonoDroid]   at Mono.Xml2.XmlTextReader.Read () [0x00000] in <filename unknown>:0 
[MonoDroid]   at System.Xml.XmlTextReader.Read () [0x00000] in <filename unknown>:0 
[MonoDroid]   at Sitecore.MobileSDK.PublicKey.PublicKeyXmlParser.Parse (System.IO.Stream xmlStream, CancellationToken cancelToken) [0x00000] in <filename unknown>:0 
[MonoDroid]   at Sitecore.MobileSDK.PublicKey.GetPublicKeyTasks+<>c__DisplayClass11.<ParseResponseDataAsync>b__d () [0x00000] in <filename unknown>:0 
[MonoDroid]   at System.Threading.Tasks.TaskActionInvoker+FuncInvoke`1[Sitecore.MobileSDK.PublicKeyX509Certificate].Invoke (System.Threading.Tasks.Task owner, System.Object state, System.Threading.Tasks.Task context) [0x00000] in <filename unknown>:0 
[MonoDroid]   at System.Threading.Tasks.Task.InnerInvoke () [0x00000] in <filename unknown>:0 
[MonoDroid]   at System.Threading.Tasks.Task.ThreadStart () [0x00000] in <filename unknown>:0 
[MonoDroid]   --- End of inner exception stack trace ---
[MonoDroid]   at Sitecore.MobileSDK.ScApiSession+<GetPublicKeyAsync>d__0.MoveNext () [0x00000] in <filename unknown>:0 
[MonoDroid] --- End of stack trace from previous location where exception was thrown ---
[MonoDroid]   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
[MonoDroid]   at System.Runtime.CompilerServices.TaskAwaiter`1[Sitecore.MobileSDK.API.Items.ScItemsResponse].GetResult () [0x00000] in <filename unknown>:0 
[MonoDroid]   at AndroidMobileSdkDemo.MainActivity+<OnCreate>d__2.MoveNext () [0x000d0] in c:\Users\Ashok v\Downloads\Sitecore.Mobile.SDK-1.0\samples\AndroidMobileSdkDemo\AndroidMobileSdkDemo\MainActivity.cs:44 
[art] JNI RegisterNativeMethods: attempt to register 0 native methods for android.runtime.JavaProxyThrowable
[MonoDroid]未处理的异常:
[MonoDroid]Sitecore.MobileSDK.API.Exceptions.RsaHandshakeException:[Sitecore Mobile SDK]未正确接收公钥---->System.Xml.xmleexception:此Xml中禁止使用文档类型声明(DTD)。第4行,位置10。
位于0中Mono.Xml2.XmlTextReader.ReadDoctypeDecl()[0x00000]的[MonoDroid]
位于0中Mono.Xml2.XmlTextReader.ReadDeclaration()[0x00000]的[MonoDroid]
位于0中Mono.Xml2.XmlTextReader.ReadContent()[0x00000]的[MonoDroid]
位于0中的Mono.Xml2.XmlTextReader.Read()[0x00000]处的[MonoDroid]
位于System.Xml.XmlTextReader.Read()[0x00000]的[MonoDroid]位于:0
[MonoDroid]位于Sitecore.MobileSDK.PublicKey.PublicKeyXmlParser.Parse(System.IO.Stream xmlStream,CancellationToken cancelToken)[0x00000]中:0
[MonoDroid]位于Sitecore.MobileSDK.PublicKey.GetPublicKeyTasks+c__DisplayClass11.b_u d()[0x00000]中:0
[MonoDroid]位于System.Threading.Tasks.TaskActionInvoker+FuncInvoke`1[Sitecore.MobileSDK.PublicKeyX509Certificate].Invoke(System.Threading.Tasks.Task所有者,System.Object状态,System.Threading.Tasks.Task上下文)[0x00000]位于:0
0中System.Threading.Tasks.Task.InnerInvoke()[0x00000]处的[MonoDroid]
0中System.Threading.Tasks.Task.ThreadStart()[0x00000]处的[MonoDroid]
[MonoDroid]——内部异常堆栈跟踪的结束---
[MonoDroid]位于Sitecore.MobileSDK.ScApiSession+d_u0.MoveNext()[0x00000]in:0
[MonoDroid]——来自引发异常的前一个位置的堆栈结束跟踪---
[MonoDroid]位于System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()[0x00000]中:0
[MonoDroid]位于System.Runtime.CompilerServices.TaskAwaiter`1[Sitecore.MobileSDK.API.Items.ScItemsResponse].GetResult()[0x00000]中:0
[MonoDroid]位于c:\Users\Ashok v\Downloads\Sitecore.Mobile.SDK-1.0\samples\androidmobilesdkddemo\androidmobilesdkddemo\MainActivity.cs:44中的androidmobilesdkddemo.MainActivity+d_u2.MoveNext()[0x000d0]
[art]JNI RegisterNativeMethods:尝试为android.runtime.JavaProxyThrowable注册0个本机方法
未正确接收公钥

检查实例设置,应启用WebAPI:

您应该在instanceUrl\Website\App\u Config\Include\Sitecore.ItemWebApi.Config中启用它

只需替换节点即可

<site name="website">
<patch:attribute name="itemwebapi.mode">Off</patch:attribute>
<patch:attribute name="itemwebapi.access">ReadOnly</patch:attribute>
<patch:attribute name="itemwebapi.allowanonymousaccess">false</patch:attribute>
</site>

关
只读
错误的


标准安全
只读
符合事实的
如果您希望匿名用户对网站具有只读访问权限。 您可以在此处找到更多详细信息: “安全”一章

<site name="website">
<patch:attribute name="itemwebapi.mode">StandardSecurity</patch:attribute>
<patch:attribute name="itemwebapi.access">ReadOnly</patch:attribute>
<patch:attribute name="itemwebapi.allowanonymousaccess">true</patch:attribute>
</site>