http://bugzilla.novell.com/show_bug.cgi?id=573326
http://bugzilla.novell.com/show_bug.cgi?id=573326#c0 Summary: WCF call in MonoTouch fails when BasicHttpSecurityMode is set to TransportWithMessageCredential Classification: Mono Product: MonoTouch Version: unspecified Platform: Macintosh OS/Version: Other Status: NEW Severity: Critical Priority: P5 - None Component: Class Libraries AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: Customer Blocker: Yes Description of Problem: I have a WCF service that is using basic http with TransportWithMessageCredential. When I run it in MonoTouch I get the following BeginWrite failure: Exception in async operation: System.Net.WebException: Error writing request: BeginWrite failure at System.Net.WebConnectionStream.WriteHeaders () [0x00050] in /Developer/MonoTouch/Source/mcs/class/System/System.Net/WebConnectionStream.cs:654 at System.Net.WebConnectionStream.SetHeaders (System.Byte[] buffer) [0x00093] in /Developer/MonoTouch/Source/mcs/class/System/System.Net/WebConnectionStream.cs:622 at System.Net.HttpWebRequest.SendRequestHeaders (Boolean propagate_error) [0x00169] in /Developer/MonoTouch/Source/mcs/class/System/System.Net/HttpWebRequest.cs:1124 Steps to reproduce the problem: 1. Create a WCF service that uses TransportWithMessageCredential 2. Make sure you are using SSL I don't have a valid cert (which may be an issue) but I ran this: makecert.exe -r -pe -ss Root -sr LocalMachine -n "CN=magichat9" -sky exchange Grab thumbprint from cert in certmgr and remove spaces 0bf002e39f7d67f7f02f49100c607294747d5260 Generate GUID {1DBFF2C5-4263-4646-94E2-FAC1BBD2318A} Add the SSL certificate: netsh http add sslcert ipport=0.0.0.0:8002 certstore=Root certhash=0bf002e39f7d67f7f02f49100c607294747d5260 appid={6C01896A-9FD6-421e-8489-4F576627DCA2} Add the URL ACL "add urlacl url=http://+:8002/AccountService sddl=D:(A;;GXGR;;;AU) 3. Now try to call it from MonoTouch... My client code looks like this: // MonoTouch does not support System.Configuration BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportWithMessageCredential); EndpointAddress endpoint = new EndpointAddress(new Uri("https://myserver:8002/AccountService")); AccountServiceClient client = new AccountServiceClient(binding, endpoint); client.ClientCredentials.UserName.UserName = "su"; client.ClientCredentials.UserName.Password = "protect the inocent"; // Subscribe to the completed event for the invocation you want to make client.LoadAccountCompleted += delegate(object sender1, LoadAccountCompletedEventArgs e1) { @@ // this next line is where I die Console.WriteLine (e1.Result); _mainTabs.LoadSummary(); _mainTabs.View.Hidden = false; window.BringSubviewToFront(_mainTabs.View); UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false; }; // Invoke the service AccountIdentifier acc = new AccountIdentifier(); acc.m_AccountID = Context.AccountId; client.LoadAccountAsync(acc, System.DateTime.Now); Actual Results: Exception in async operation: System.Net.WebException: Error writing request: BeginWrite failure at System.Net.WebConnectionStream.WriteHeaders () [0x00050] in /Developer/MonoTouch/Source/mcs/class/System/System.Net/WebConnectionStream.cs:654 at System.Net.WebConnectionStream.SetHeaders (System.Byte[] buffer) [0x00093] in /Developer/MonoTouch/Source/mcs/class/System/System.Net/WebConnectionStream.cs:622 at System.Net.HttpWebRequest.SendRequestHeaders (Boolean propagate_error) [0x00169] in /Developer/MonoTouch/Source/mcs/class/System/System.Net/HttpWebRequest.cs:1124 Expected Results: Serivce works How often does this happen? Every time Additional Information: I am wondering if it is the cert not being valid... but code like this on the client doesn't work: client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None; client.ClientCredentials.ServiceCertificate.Authentication.RevocationMode = System.Security.Cryptography.X509Certificates.X509RevocationMode.NoCheck; Hope someone can help...! thanks... -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
