.NET Client and Java Web Service Interoperability

I have a .net client that consumes an operation on a java based web service that appears to work accept for an issue with passing Boolean values back to the service in the soap
message. Any member of the complex type that are defined as Boolean in the service contract will not be present in the soap message generated from the client even though they are set in the code.
Sample Client Code:
UpdateChecklistItemStatusPortTypeClient
proxy =
new
UpdateChecklistItemStatusPortTypeClient();
updateChecklistItemStatusReq
request = new
updateChecklistItemStatusReq();
request.ouid =
"P000122112";
request.applicationId =
"00000032";
request.adminFunction =
"ADMA";
request.checklistItemTypeCode =
"UHSTRN";
request.ceebCode =
"052046";
request.transcriptTerm =
"FINAL";
request.transcriptScores =
true;
updateChecklistItemStatusRsp
response = new
updateChecklistItemStatusRsp();
response = proxy.UpdateChecklistItemStatusOp(request);
Client Soap Message Generated:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

More Related Resource Links

Hi everybody,
I'm implementing a WCF client which talks to a Java web service secured with x509 certificates and username token. The service requires both signing and encryption as message protection.
Thanks to Yaron
Naveh and some other guys on this forum I've managed to solve the signing stuff, but the encryption seems to be much more difficult.
The problem I'm facing now is the server cannot decrypt my messages - I'm getting HTTP 500 errors. I've got a request example from the service vendor and compared with the messages my client generates, there is only one difference: in the example
provided by service vendor I can see an extra tag KeyInfo under the EncryptedData, which seems to me reasonable to be there, but I don't know why WCF doesn't put that item. These are the two SOAP request sections I'm talking about:
My WCF client:
<s:Body u:Id="_1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<e:EncryptedData Id="_2" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
<e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
<e:CipherData>
<e:CipherValue>
<!-- Removed-->
</e:CipherValue>
</e:Cipher

I need to consume a SOAP web service created in Java from a WCF client. By intensively searching this on the web in general and on this forum in particular, I've seen that quite a lot of people have problems in this area, however I never found the answer
to the questions I will post on this thread.

The service I have to consume has the following constraints:

needs transport level security by communicating over HTTPS

needs signatures on the body (soap:body element) and a custom header of each request. The signature is done using a client certificate and complies with http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf. The signature
is required only on requests. Service responses are not signed.

After an intensive amount of work I managed to make my request messages look like (intercepted with fiddler):

One server with Windows 2003, hosting the web service using .Net Framework 2.0, with IP 10.0.2.50 and host name ServerTransaction.Other server with Windows 2003, hosting a web application using .Net Framework 2.0, that consuming the web service on ServerTransaction, with IP 10.0.2.51 and host name ServerApplication.Many other computers on the local network (IPs: 10.0.2.80, 10.0.2.81, 10.0.2.82, ...) acessing the web application on ServerApplication.

On the code of the web service I've tried to use HttpContext.Current.Request.UserHostAddress or HttpContext.Current.Request.ServerVariables("REMOTE_ADDR") or HttpContext.Current.Request.ServerVariables("HTTP_X_FORWARDED_FORR"), but always I can only get the IP of ServerApplication (10.0.2.51).

Smart client applications are responsive and promote interactivity with the user. In this article, we continue building a smart client application using NHibernate for data access and Rhino Service Bus for reliable communication with the server.

Smart client applications are responsive and promote interactivity with the user. In this article, we start the processes of planning and building a smart client application using NHibernate for data access and Rhino Service Bus for reliable communication with the server.

If interoperability is the main promise of Web services, why is it that so many developers and organizations have a difficult time achieving it in practice? With all due respect to our hard-working standards bodies, the primary culprits are the imperfect specifications guiding today's implementations.

Web Services are all about exchanging data in the form of XML messages. If you were about to design a database schema, you probably wouldn't let your tool do it for you. You'd hand-tool it yourself to ensure maximum efficiency. In this article, the author maintains that designing a Web Service should be no different. You should know what kind of data will be returned by Web Service requests and use the structure of that data to design the most efficient message format. Here you'll learn how to make that determination and how to build your Web Service around the message structure.

Does anyone know of a C# code sample demonstrating WCF REST services and console test client with OperationContracts (GET and POST) implementing mutiple paramaters using BASIC authentication? Also, perhaps, using Fiddler as a test client as well? I have searched high and low for something like this, but have not had any success.

I am using a WCF client to communicate with a Websphere hosted web service. The service requires my message to be signed, but not encrypted. This is being done and works as expected. I can see in my trace logs that I get a valid response
back from the service. However, it isn't making past the proxy becuase of the following error:
System.ServiceModel.Security.MessageSecurityException: Security processor was un
able to find a security header in the message. This might be because the message
is an unsecured fault or because there is a binding mismatch between the commun
icating parties. This can occur if the service is configured for security and
the client is not using security.
I've edited the binding to remove the timestamp and have verified that it is not being sent, however, I still get this error.
Here's what the header of my request looks like:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<ActivityId CorrelationId="b0d474df-8b00-4c30-bd05-d1e478529ce4" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">cb8e51de-83b4-4bfe-bf1c-fd92ce86f557</ActivityId>
<o:Security s:mustUnderstand="1" xmlns:o="http://

Hi,
I have consumed an external webservice in my client application using WCF. And every thing works great in my Dev box(XP with IIS5.1)
But when the same application is moved to Prod server(Win Server 2003 with IIS6.0) it fails. Below is the exception caught:
There was no endpoint listening at http://MyExternalWebServiceUrlWithSessionId could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
And the InnerException is: Unable to connect to the remote server
My Config file has the below settings:<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Default_Binding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCoun

I am trying to use WCF to call a Java Web Service.ÃÂ The Web Service has several security requirements based on the Basic Security Profile 1.0:- The client and service should bothÃÂ use certificatesÃÂ - The certificates will be used to sign and encrypt the message.- In addition, a supporting UsernameToken should be included.Based on those requirements, it seems like I should be using the MutualCertificate (or MutualCertificateDuplex) authentication mode:<customBinding>ÃÂ <binding name="Custom11">ÃÂ ÃÂ <textMessageEncoding messageVersion="Soap11" />ÃÂ ÃÂ <security defaultAlgorithmSuite="TripleDesRsa15" allowSerializedSigningTokenOnReply="true"ÃÂ ÃÂ ÃÂ authenticationMode="MutualCertificate" requireDerivedKeys="false"ÃÂ ÃÂ ÃÂ includeTimestamp="true" messageProtectionOrder="EncryptBeforeSign"ÃÂ ÃÂ ÃÂ messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"ÃÂ ÃÂ ÃÂ requireSecurityContextCancellation="false">ÃÂ </security>ÃÂ <httpTransport />ÃÂ </binding></customBinding>And then I need to add a supporting token for the user name.ÃÂ Something like:BindingElementCollection elements = binding.CreateBindingElements();SecurityBindingElement security = elements.Find<SecurityBindingElement>();UserNameSecuri

Hi all, I was wondering what is the best way to detect client disconnect in the middle of an async web service call.
I'm asusming that if a client disconnects while the server is still processing the async web method call, an exception will be thrown. First, I wonder if someone can confirm that this is the right assumption.
If that's the case, then I was wondering where should I set up the SEH block to catch this exception. My gut tells me to set up the SEH block in side the delegate funciton, but I might be wrong. Also, what kind of an exception would I be getting if the client disconnects?
Finally, if the SEH is set up in the delegate, what happens if a client disconnects in the tiny window before or after the delegate gets called?
If someone can shed some light here I'd really appreciate it!
Thanks,
- K.

Hi,I have hosted a wcf service over IIS with Windows Authentication. All the users are able to access the WCF service Url from their machine. The problem is that some of the user are able to consume the webservice method while few of them when try to consume the service ,the error is thrown connection - reset error.I have tried to go through the IIS log also but it did'nt helped.Can any one help me regarding this. What settings I need to check/change to solve the proble.Thanks,AKB

I am writing some code in an asp application that needs to communicate with a PHP REST Service.
I have 2 questions.
1. In my data variable I have to put the POST parameters. If I needed to put reserved characters like & or ? into the string is there an escape character I can use? Or would encoding it work? Or would it totally depend on how the web service works?
2. Is the code I am using the usual way to make a POST connection to a REST service? Or is there an easier/faster way?
Below is the code I am using Dim uri As New Uri("http://help.domain.com/api/index.php?method=request.create")
Dim data As String = "tNote=Testing Code&sEmail=test@test.com"
If uri.Scheme = uri.UriSchemeHttp Then
Dim request As HttpWebRequest = HttpWebRequest.Create(uri)
request.Method = WebRequestMethods.Http.Post
request.ContentLength = data.Length
request.ContentType = "application/x-www-form-urlencoded"
Dim writer As New StreamWriter(request.GetRequestStream)
writer.Write(data)
writer.Close()
Dim oResponse As HttpWebResponse = request.GetResponse()
Dim reader As New StreamReader(oResponse.GetResponseStream())
Dim tmp As String = reader.ReadToEnd()
oResponse.Close()