Hi
Ran into this issue this afternoon: Create new android app with the
following code
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
Button button = FindViewById<Button>(Resource.Id.MyButton);
button.Click += button_Click;
ServicePointManager.ServerCertificateValidationCallback +=
validatedCertificate;
}
void button_Click(object sender, EventArgs e)
{
HttpWebRequest req = new HttpWebRequest(new
Uri(@"https://wsklo2059.dragonslair.net:8090/IsAlive/"));
WebResponse res = req.GetResponse();
}
private bool validatedCertificate(object sender, X509Certificate
certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true;
}
But validatedCertificate is never called and pressing the button results in
a crash:
Unhandled Exception:
System.Net.WebException: Error getting response stream (Write: BeginWrite
failure): SendFailure
04-02 18:20:16.470 I/MonoDroid(18254): UNHANDLED EXCEPTION:
System.Net.WebException: Error getting response stream (Write: BeginWrite
failure): SendFailure ---> System.IO.IOException: BeginWrite failure
04-02 18:20:16.470 I/MonoDroid(18254): at
System.Net.Sockets.NetworkStream.BeginWrite (System.Byte[] buffer, Int32
offset, Int32 size, System.AsyncCallback callback, System.Object state)
[0x00000] in <filename unknown>:0
04-02 18:20:16.470 I/MonoDroid(18254): at
Mono.Security.Protocol.Tls.RecordProtocol.BeginSendRecord (ContentType
contentType, System.Byte[] recordData, System.AsyncCallback callback,
System.Object state) [0x00000] in <filename unknown>:0
04-02 18:20:16.470 I/MonoDroid(18254): at
Mono.Security.Protocol.Tls.RecordProtocol.SendRecord (ContentType
contentType, System.Byte[] recordData) [0x00000] in <filename unknown>:0
04-02 18:20:16.470 I/MonoDroid(18254): at
Mono.Security.Protocol.Tls.RecordProtocol.SendAlert
(Mono.Security.Protocol.Tls.Alert alert) [0x00000] in <filename unknown>:0
04-02 18:20:16.470 I/MonoDroid(18254): at
Mono.Security.Protocol.Tls.RecordProtocol.SendAlert (AlertDescription
description) [0x00000] in <filename unknown>:0
04-02 18:20:16.470 I/MonoDroid(18254): at
Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback
(IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
04-02 18:20:16.470 I/MonoDroid(18254): --- End of inner exception stack
trace ---
04-02 18:20:16.470 I/MonoDroid(18254): at
System.Net.HttpWebRequest.EndGetResponse (System.IAsyncResult) <IL 0x00064,
0x002d0>
04-02 18:20:16.470 I/MonoDroid(18254): at
System.Net.HttpWebRequest.GetResponse () <IL 0x00010, 0x000d3>
04-02 18:20:16.470 I/MonoDroid(18254): at
AndroidApplication1.Activity1.button_Click (object,System.EventArgs)
[0x00011] in d:\Personal\Documents\Visual Studio
2012\Projects\AndroidApplication1\AndroidApplication1\Activity1.cs:43
04-02 18:20:16.470 I/MonoDroid(18254): at
Android.Views.View/IOnClickListenerImplementor.OnClick (Android.Views.View)
[0x0000b] in
/Users/builder/data/lanes/monodroid-mac-monodroid-4.4-series/6418373f/source/monodroid/src/Mono.Android/platforms/android-8/src/generated/Android.Views.View.cs:631
04-02 18:20:16.470 I/MonoDroid(18254): at
Android.Views.View/IOnClickListenerInvoker.n_OnClick_Landroid_view_View_
(intptr,intptr,intptr) [0x00010] in
/Users/builder/data/lanes/monodroid-mac-monodroid-4.4-series/6418373f/source/monodroid/src/Mono.Android/platforms/android-8/src/generated/Android.Views.View.cs:602
04-02 18:20:16.470 I/MonoDroid(18254): at (wrapper dynamic-method)
object.f0ff84a6-0b9e-431a-a87e-a29a586c1ef3 (intptr,intptr,intptr) <IL
0x00017, 0x00043>
This is on m4a 4.4.55 - I suspect that somewhere in the depths of mono, my
validation callback is being undone as the behavior is the same as if I
don't do this validation.
The same code works in a Winforms app so it's down to M4A.
I suppose I should upgrade to the latest... will give that a go and report
back if it fixes things.
Regards
Stephan
--
View this message in context:
http://mono-for-android.1047100.n5.nabble.com/handling-webservices-with-self-signed-certificates-tp5713085.html
Sent from the Mono for Android mailing list archive at Nabble.com.
_______________________________________________
Monodroid mailing list
[email protected]
UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid