2017-04-27 41 views
0

我在xamarin中是全新的。xamarin PCL消耗WCF:Android中未处理的异常

我使用Visual Studio 2017社区,我编写了一个非常简单的代码:我想连接到基本的WCF服务。

的纽带,以服务:

http://services.adserviceitalia.it/Service1.svc

(方法GetHello,输入字符串,返回字符串...非常基本的方法)

我读了很多样品的...我添加对服务的引用,生成代理类...好!

public partial class MainPage : ContentPage 
{ 

    private wcfs.Service1Client ws; 


    public MainPage() 
    { 
     InitializeComponent(); 


     var endpoint = new EndpointAddress("http://services.adserviceitalia.it/Service1.svc"); 
     var binding = new BasicHttpBinding 
     { 
      Name = "basicHttpBinding", 
      MaxBufferSize = 2147483647, 
      MaxReceivedMessageSize = 2147483647 
     }; 
     TimeSpan timeout = new TimeSpan(0, 0, 30); 
     binding.SendTimeout = timeout; 
     binding.OpenTimeout = timeout; 
    binding.ReceiveTimeout = timeout; 

     ws = new wcfs.Service1Client(binding,endpoint); 
     ws.GetHelloCompleted += Handle_HelloWorldCompleted; 

    } 

    private void Button_Clicked(object sender, EventArgs e) 
    { 

     ws.GetHelloAsync("Mark"); 

     } 


    private void Handle_HelloWorldCompleted(object sender, wcfs.GetHelloCompletedEventArgs args) 
    { 

     label1.Text = args.Result; 
    } 

    } 
} 

它工作在UWP调试...

Connection with WCF... Hello World working in UWP

我在Android中未处理的异常...

在Android清单所有权限都cheched。 Android模拟器连接到互联网...

每一个帮助将非常感谢!在此先感谢......并请原谅我的英语。

+0

Android中发生了什么异常? – Jason

+0

我不知道...: - ((( 只弹出一个窗口:“未处理的异常出现” 没有裁判 – treep

+0

命中打破 - 然后使用调试器来看看异常和堆栈跟踪 – Jason

回答

0

Ops ...

第一:谢谢大家!

在我的日志中,我读到: 04-27 14:11:30.106 E/mono-rt(5308):[ERROR] FATAL UNHANDLED EXCEPTION:Android.Util.AndroidRuntimeException:只有创建视图的原始线程层级可以触及其观点。

看来,问题是,我试图直接与WCF respose更新界面Handle_HelloWorldCompleted:

label1.Text = args.Result; 

...在我这样修改代码:

//label1.Text = args.Result; 
System.Diagnostics.Debug.WriteLine(args.Result); 

我可以请参阅arg.Result由WCF响应“Hola Mark”填充(ergo:与服务的连接正常工作!!)。

注意我在Android调试中只有这种行为。

如何更新该标签1?

+0

使用Activity.RunOnUiThread – Jason

+0

谢谢Jason。 RunOnUiThread。非常不同?? – treep

+0

RunOnUIThread仅适用于Android – Jason