.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal
Post New Web Links

WSE 2.0 and/or WCF - how to set wsa:Action in soap:Header different from HTTP header SoapAction?

Posted By:      Posted Date: September 22, 2010    Points: 0   Category :.NET Framework

I currently have a WSE 2.0 WebServicesClientProtocol object (generated from WSDL) created which has a a valid uri as its soapAction (from the WSDL binding). I need to set the <wsa:Action> value in the <soap:Header> to something other than the binding's soapAction. I know this violates W3C protocol, but the web services are another party's and cannot be changed.

I code (where "transport" is the WebServicesClientProtocol object) :

transport.RequestSoapContext.Addressing.Action = new Microsoft.Web.Services2.Addressing.Action(reqAction);

and can see in the VS debugger that it sets the action, but when I call the method to send the web request the <wsa:Action> is reset to the same value as the soapAction in the HTTP header. I assume WSE 2.0 is doing this. Can a custom SoapOutputFilter help me to "manually override" the <wsa:Action>?

If I abandon WSE 2.0 (which I kno

View Complete Post

More Related Resource Links

Remove Action from SOAP header


I dont know how i disable Action element. I am receiving SOAP messages which contain XML with operations. I already discovered i must use Message Contracts. But i cannot set WCF service which wouldn't use Action element in header.

<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://localhost:58024/services/Udalosti</Action>

I sub asmx service by by wcf.

In asmx i need only set



RequestElementName = "UdalostiRequest",
RequestNamespace = "http://nsess.public.cz/erms/v_01_00",
ResponseElementName = "UdalostiResponse",
Use = SoapBindingUse.Literal,
ParameterStyle = SoapParameterStyle.Bare)]
public UdalostiResponse Udalosti(UdalostiRequest UdalostiRequest){}





<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/env

How to read the custom http header



I have just joined the forum. I have a very simple query. I have added custom header to my website. Now I want to read the custom header. I am using IIS 6.0 on windows XP. I have already tried using using the Request.ServerVariables and and Request.header method. But none of them give me the custom header added to website.

Can any body help?

Thanks a lot in advance



Why does WCF add two Signature elements in the SOAP header when using a TransportSecurityBindingEle

I try to call a web service that implements the following standards from a WCF client:   WS-I Basic Security Profile Version 1.0 Web Services Security X.509 Certificate Token Profile, OASIS Standard X.509 used for digitally signing digests of uploaded files and web service requests SOAP 1.1/1.2. HTTPS 1.1 I use the a CustomBinding created in the following maner: HttpsTransportBindingElement httpsTransport = new HttpsTransportBindingElement(); httpsTransport.ProxyAddress = new Uri("http://myproxy:8080"); httpsTransport.UseDefaultWebProxy = false; // the message security binding element will be configured to require // a client certificate used to sign the message TransportSecurityBindingElement messageSecurity = SecurityBindingElement.CreateCertificateOverTransportBindingElement(); // Create supporting token parameters for the client X509 certificate. X509SecurityTokenParameters clientX509SupportingTokenParameters = new X509SecurityTokenParameters(); // Specify that the supporting token is passed in message send by the client to the service clientX509SupportingTokenParameters.InclusionMode = SecurityTokenInclusionMode.AlwaysToRecipient; // Turn off derived keys clientX509SupportingTokenParameters.RequireDerivedKeys = false; // Augment the binding element to require the client's X509 certificate as an endorsing token i

How to pass values using http header to another domain?

Hi,There are two applications "Sender", "Receiver"."Receiver" is a asp.net page, running in a server"Sender" is not an asp.net page and running in some other server."Sender" is passing a string (eg. userName) through http header."Receiver" is reading the string from http header as follows        Request.Header["userName"].How to pass values through http header? Can I have some samples?Thanks,Ashokan

Server cannot append header after HTTP headers have been sent

Can some one please help me with this issue- I am writing exceptions to event log, and my event log is filled with this exception messageSystem.Web.HttpException: Server cannot append header after HTTP headers have been sent.    at System.Web.HttpResponse.AppendHeader(String name, String value)    at System.Web.HttpResponse.AddHeader(String name, String value)    at AddFormPopUp.streamingFiles(String DocID, String FilePath, String FileExtension1)  Here is the code in streamingFiles function.Response.Clear() Dim binReader As New BinaryReader(File.Open((strFileNamePath), FileMode.Open, FileAccess.Read)) binReader.BaseStream.Position = 0 Dim binFile As Byte() binFile = binReader.ReadBytes(Convert.ToInt32(binReader.BaseStream.Length)) binReader.Close() Dim fileStream As New FileStream(strFileNamePath, FileMode.Open, FileAccess.Read) fileStream.Read(binFile, 0, fileStream.Length) Response.AddHeader("content-disposition", "attachment; filename=" & Strfilenameonly) Response.OutputStream.Write(binFile, 0, binFile.Length) fileStream.Close() If Response.IsClientConnected Then Response.Flush() binFile = Nothing Response.Clear() response.end  

Programmatically remove IIS HTTP header settings

 Our IIS server (v7) has the following settings in [Custom HTTP Headers] for our whole site: Pragma: no-cacheCache-Control: private, no-cache, no-store, max-age=0, must-revalidate, post-check=0, pre-check=0X-Powered-By: ASP.NET Out of the whole site, there are some pages that require the "no cache" setting to be removed for them to work properly. This was done manually by our IIS Administrator until recently.  Now we were told that we need to do it programmatically on our end. The following were the code snippets (VB.NET) we have used with no luck in success. Advice is appreciated, Thanks! Method-1Response.Headers.Remove("Pragma")Response.Headers.Remove("Cache-Control")Response.Headers.Add("Cache-Control", "private")Response.CacheControl = System.Web.HttpCacheability.public Method-2Response.ClearHeaders()Response.Headers.Clear()Response.CacheControl = "Public"Response.Cache.SetCacheability(HttpCacheability.Public)Response.Cache.SetAllowResponseInBrowserHistory(True)

How do I do not encrypt the soap header using WCF ?

  Hello Yaron, After reading your post at http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/e1288179-63aa-41d7-ad5b-72363d4cc7d8 I decided ask for your help. If you can give some head light about my problem I'll really apretiate it. I'm trying to consume a java webservice that requires that the request message be signed with a certificate. For testing purponses I created a x509 certificate using de makecert.exe on my localmachine and thogth the certmgr.msc I genereated the public key (a .cer file) and passed to the java webservices team that developed that webservice to install it on the server...) Now I'm trying to create a simple client that consumes that java webservice but I'm percepting that the request message is going to the server, encrypted, what I do not want. The java Team told me that the webservice expects a message just signed but not encrypted. They told me that the request message should be something like this:   ID: 26 Address: http://localhost:9000/SubjectService Encoding: UTF-8 Content-Type: multipart/related; type="application/xop+xml"; boundary="uuid:8a0433e7-4756-47e3-a611-a38163a9e50c"; start="<root.message@cxf.apache.org>"; start-info="text/xml" Headers: {SOAPAction=[""], Accept=[*/*]} Payload: --uuid:8a0433e7-4756-47e3-a611-a38163a9e50c Content-Type: application/xop

SOAP Security Header: EncryptedData



I am configuring WCF to talk to non-.NET SOAP Framework.

The SOAP message will be encrypted with public-key, with Timestamp and UsernameToken in the Security Header.

I am starting off with CreateAnonymousForCertificateBindingElement(), and adding UserNameSecurityTokenParameters() to EndpointSupportingTokenParameters.Signed collection.

Difficulty is: In the SOAP Security Header I get ONE EncryptedData element that is giving the 3rd party service trouble... If I use a tool to submit altered SOAP Envelope without EncryptedData element (which seems to be not needed) the 3rd party service takes the request successfuly.

1) What may be generating this EncryptedData element?
2) How could EncryptedData be turned off OR removed from the Security Header?


Thank you


Cant reuse Http connections. No KeepAlive header. HttpWebRequest.KeepAlive = true;


I tried to reuse Http connections setting KeepAlive but it simply doesnt work. I looked in the Http messages using Feedler and Charles but all I can see is Connection: close in response. I am sure I use HTTP 1.1 as it says so in the request.

I see 600 TCP connections in wait state opened by 10 threads. Each thread run one http request at a time.

There is also bunch of responses which say - the unauthenticated request. The service requires digest authentication. Why some requestes fail to be authenticated?? 

P.S. I just found this thread: http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/87bc7029-ce23-438a-a767-f7c32dcc63a7 and I tried to set UnsafeAuthenticatedConnectionSharing = true but still my TCP connections are not reused.

    static void GetRest(string rest) 

read http custom header from web service


cant read http custome header "MSISDN" from my web service ... same code works on regular asp.net page. Can anyone shade a light on that subject ?

SSIS calling proxy class but need to add soap header (?)

Hi guys I am a bit of newbie to both web services and SSIS.....
I have a SSIS 2005 (not 2008!) package that consumes a WCF Web service which was written by another company.  This company generated a proxy class in VB for me and I copied and pasted the code into my SSIS VB script task.
Here is the beginning of the proxy class:
Namespace abc.xxx.xxxxxxx.Client.xxxxx
    <System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038"), _
     System.Diagnostics.DebuggerStepThroughAttribute(), _
     System.ComponentModel.DesignerCategoryAttribute("code"), _
     System.Web.Services.WebServiceBindingAttribute(Name:="BasicHttpBinding_Idkdkdkdkdkdk", [Namespace]:="http://blah/"), _
     System.Xml.Serialization.XmlIncludeAttribute(GetType(dddddddddd))> _
    Partial Public Class class1
It appears to be fine but when I tried to call any web service method, it returns a soap error "username is not in HTTP header".  I asked the company that wrote the Web service and

Adding SOAP header to a SOAP message

Hi guys I am a bit of newbie to SOAP message handling here....
I just want to quote my example here and ask for some assistance...I have been scratching my (bald) head for a couple of days on this and get quite panic....

I have a SQL server Integration Service (SSIS) 2005 package that uses Visual Studio 2005 VB script to consume a third-party WCF Web service in proxy class .  The third party company generated a proxy class in VB for me and I copied and pasted the code into my SSIS VB script task.  For your information, SSIS 2005 is .NET 2.0 framework based.

Here is the beginning of the proxy class:
Namespace abc.xxx.xxxxxxx.Client.xxxxx
    <System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038"), _
     System.Diagnostics.DebuggerStepThroughAttribute(), _

Soap header XML manipulation in .NET 2.0


Hi I have given a task to add two fields (__UserName/__SessionID) in a soap header.  The result soap header should look similar to this:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<a:Action s:mustUnderstand="1">http://abc/xyz</a:Action>
<__UserName xmlns=http://abc>xxxxxxx</__UserName>
<__SessionID xmlns=http://abc>36edf379-708c-4056-b7d8-3bdaa4c6d172</__SessionID>.............

This soap header is added to a WFC proxy class.  I have created a new soapheader class like this:

<System.SerializableAttribute(), _
        System.ComponentModel.DesignerCategoryAttribute("code"), _
         System.Xml.Serialization.XmlTypeAttribute([Namespace]:="http://abc/"), _
         System.Xml.Serialization.XmlRootAttribute([Namespace]:="http://abc/", IsNullable:=False)> _
    Partial Public Class mySoapHeader

BasicHttp binding service failing when receiving a message with a To soap header


My WCF service is exposed through a basicHttp binding.


When I receive the following message

 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> <To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://biztalk01:81/StuffServices.svc</To> </s:Header> <s:Body> <ns0:GetMyStuff xmlns:ns0="http://example.com/stuff" xmlns:ns1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <ns0:inputArray> <ns1:string>80220</ns1:string> </ns0:inputArray> </ns0:GetMyStuff > </s:Body> </s:Envelope>

it gives a fault back, but if I try in soapUI to send the exact same request without the To header (deleting the "<To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none" >http://biztalk01:81/StuffServices.svc "), then it works fine and returns the correct response.

Do I have any way to make my service handle that request including a To header correctly?

I tried changing my binding to a CustomBinding as described here : http://blog.irm.se/blogs/eric/archive/2008/07/04/WS_2D00_Addressing-and-WCF.aspx

but that only resulted in the IIS worker proc

How to control SOAP address header and/or "mustUnderstand"-attribute in WCF client

Hello all,

using the following configuration, I'm trying to build a WCF-client for a non-WCF service that requires a SecurityContextToken for authentication.

<?xml version="1.0" encoding="utf-8"?>


        <binding name="TicketServiceBinding">



Why is a reply action header ignored by ReceiveReply?


I already found out how to sucessfully invoke a operation in a WCF service developed with .NET (see http://social.msdn.microsoft.com/Forums/en-US/wfprerelease/thread/5b5b93d8-57f4-4ff5-be10-debe57e5885f).

One question remaining is why ReceiveReply ignores the reply action header, at least in my case. My webservice is very simple:

[ServiceContract(Namespace = "http://www.juergen-bayer.net/samples/wcf")]
public interface IDemoService
 long Add(int value1, int value2);

In the web.config of the service application I enabled wsHttpBinding (basicHttpBinding does not send the reply Action header back to the client, at least in my case).


SoapAction: http://schemas.microsoft.com/sharepoint/soap/GetListItemChangesSinceToken | This method



i installed Sharepoint Foundation 2010 on Windows SRV 2008R2 (Single Server installation. No Sharepoint Farm). After the installation I extended my WebAppPool in order to get the same page with port 443. I already troubleshooted some problems and now everything is fine except this one. Here is a short overview about what has been done after the installation:

1. Deploy a single server with a built-in database (SharePoint Foundation 2010) (Technet = http://technet.microsoft.com/en-us/library/cc288005.aspx)

2. Initial configuration (SharePoint Foundation 2010) (Technet = http://technet.microsoft.com/en-us/library/ee837435.aspx)

3. Extend the Web Application (Uses Windows-classic authentication) (Technet = http://technet.microsoft.com/en-us/library/gg276321.aspx)

4. Changed Central Admin Service Account, Changed MyWebAppPool Service Account, Changed Search Service Service Account + Crawle

ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend