Zach's profileZach BonhamPhotosBlogLists Tools Help

Blog


    August 19

    Of WSE, F5 and the SoapActorAttribute

    This is one of those situations where expectations and reality just don't quite meet. 
     
    Background
    Partner facing web services that use an F5 BIG-IP load balancing device, digital x.509 certificates hosted on the server, and a pool of web servers to handle the actual requests.  Client establishes a secure SSL connection on port 443 to the F5, which then proxies the request to a web server on port 80.  The connection is only secured with SSL up to the hardware load balancer
     
    During the development of a partner facing set of web services, everything was going smoothly until it came time to access them across the internet.  Up to this point, we've been developing, testing and deploying within our network.  Which is not to say that we didn't make sure we could use the F5 to load balance across our development servers, and I don't mean to say that we didn't have tests using SSL (direct to web server) connections.  What we didn't have is a load balanced SSL site on our development network, otherwise we would have caught the problem earlier!
     
    The Problem
    Turns out, when you've got a client making an 'https' request and then the load balancer proxing a standard 'http' request to your web server, you're using Web Service Extensions (WSE), your WSE enabled service is going to throw an exception in its receive filter pipeline as
     
    System.Web.Services.Protocols.SoapException: SOAP-Fault code:http://schemas.xmlsoap.org/ws/2004/08/addressing:DestinationUnreachable Message: Microsoft.Web.Services3.Addressing.AddressingFault: Destination Unreachable ---> System.Exception: WSE846: The <wsa:To> header must match the actor URI value of the web service. The actor URI value can be explicitly specified using SoapActorAttribute on the ASMX class. In the absence of the attribute, the actor URI is assumed to be equal to the HTTP Request Url of the incoming message. The <To> header received contained https://bogus/test/public-cn/ItemMasterService.asmx while the receiver is expecting http://bogus/test/public-cn/ItemMasterService.asmx. --- End of inner exception stack trace ---
     
    What to do? The wsa:To is setup using its default behavior and you don't want your client to have to 'hack' their way around to setup the request correctly.
     
    We also briefly considered using the scripting capabilities of the F5 to modifying the payload on the way in to fixup the request, whic seems like another hack, but now it involves not the client, but another team.
     
    Finally, looked up the SoapActorAttribute.  Looks like we can turn off the verification of WSE that the wsa:To and the original requesting URI match, and keep the dirty little secret within our team.  So this was the hack that was chosen.  I'm not entirely sure its a hack, but it seems like I've lost some of the functionality of why I chose WSE in the first place. 
     
    From MSDN:
    "When a Web service is hosted in a Web farm that uses one URI for the load balancer and a different URI for the individual computers in the Web farm, disabling this check is necessary. For example, when SSL is used to access a Web farm, the URI to access the hardware load balancer typically uses the https scheme, whereas the URIs for the individual members of the Web farm use a URI with an http scheme. In this scenario, apply a SoapActorAttribute attribute to the class implementing the Web service and set the Actor property to *. "
     
    The Fix
    Simply appended the attribute to our sevices:
     
    [SoapActor("*")]
     
    ..and everything magically began working as expected. 
     

    Comments (6)

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    No namewrote:
    http://www.bestlaptopbattery.com.au/asus/a32-s5-white.htm Asus a32-s5 white battery
    http://www.bestlaptopbattery.com.au/asus/a32-s6.htm Asus a32-s6 battery
    http://www.bestlaptopbattery.com.au/asus/a32-u6.htm Asus a32-u6 battery
    http://www.bestlaptopbattery.com.au/asus/a33-s6.htm Asus a33-s6 battery
    http://www.bestlaptopbattery.com.au/asus/a4.htm Asus a4 battery
    http://www.bestlaptopbattery.com.au/asus/a4000.htm Asus a4000 battery
    http://www.bestlaptopbattery.com.au/asus/a42-a2.htm Asus a42-a2 battery
    http://www.bestlaptopbattery.com.au/asus/a42-a3.htm Asus a42-a3 battery
    http://www.bestlaptopbattery.com.au/asus/a42-a4.htm Asus a42-a4 battery
    http://www.bestlaptopbattery.com.au/asus/a42-m6.htm Asus a42-m6 battery
    http://www.bestlaptopbattery.com.au/asus/a42-m6-silver.htm Asus a42-m6 silver battery
    http://www.bestlaptopbattery.com.au/asus/a42-v6.htm Asus a42-v6 battery
    http://www.bestlaptopbattery.com.au/asus/a42-w1.htm Asus a42-w1 battery
    http://www.bestlaptopbattery.com.au/asus/a42-w1-silver.htm Asus a42-w1 silver battery
    http://www.bestlaptopbattery.com.au/asus/a42-w3.htm Asus a42-w3 battery
    http://www.bestlaptopbattery.com.au/asus/ap22-u1001.htm Asus ap22-u1001 battery
    http://www.bestlaptopbattery.com.au/asus/f3.htm Asus f3 battery
    http://www.bestlaptopbattery.com.au/asus/m3000-silver.htm Asus m3000 silver battery
    http://www.bestlaptopbattery.com.au/asus/m3n-silver.htm Asus m3n silver battery
    http://www.bestlaptopbattery.com.au/asus/m5000-white.htm Asus m5000 white battery
    http://www.bestlaptopbattery.com.au/asus/m5n.htm Asus m5n battery
    http://www.bestlaptopbattery.com.au/asus/m6000.htm Asus m6000 battery
    http://www.bestlaptopbattery.com.au/asus/m6000-silver.htm Asus m6000 silver battery
    http://www.bestlaptopbattery.com.au/asus/m67.htm Asus m67 battery
    http://www.bestlaptopbattery.com.au/asus/m67n.htm Asus m67n battery
    http://www.bestlaptopbattery.com.au/asus/m68.htm Asus m68 battery
    http://www.bestlaptopbattery.com.au/asus/m68n.htm Asus m68n battery
    http://www.bestlaptopbattery.com.au/asus/m6n.htm Asus m6n battery
    http://www.bestlaptopbattery.com.au/asus/m6-silver.htm Asus m6 silver battery
    http://www.bestlaptopbattery.com.au/asus/s101.htm Asus s101 battery
    http://www.bestlaptopbattery.com.au/asus/s2691061.htm Asus s2691061 battery
    http://www.bestlaptopbattery.com.au/asus/s5000.htm Asus s5000 battery
    http://www.bestlaptopbattery.com.au/asus/s5000a.htm Asus s5000a battery
    http://www.bestlaptopbattery.com.au/asus/s5000n.htm Asus s5000n battery
    http://www.bestlaptopbattery.com.au/asus/s5000-white.htm Asus s5000 white battery
    http://www.bestlaptopbattery.com.au/asus/s5200n.htm Asus s5200n battery
    http://www.bestlaptopbattery.com.au/asus/s52n.htm Asus s52n battery
    http://www.bestlaptopbattery.com.au/asus/s5n.htm Asus s5n battery
    http://www.bestlaptopbattery.com.au/asus/u6s.htm Asus u6s battery
    http://www.bestlaptopbattery.com.au/asus/u6sg.htm Asus u6sg battery
    http://www.bestlaptopbattery.com.au/asus/u6v.htm Asus u6v battery
    http://www.bestlaptopbattery.com.au/asus/v6000.htm Asus v6000 battery
    http://www.bestlaptopbattery.com.au/asus/w1.htm Asus w1 battery
    http://www.bestlaptopbattery.com.au/asus/w1000.htm Asus w1000 battery
    4 days ago
    Nov. 3
    No namewrote:

    Hi,Do you need digital signages, advertising displays, digital sign, advertisement displays and advertising players? Please go Here:www.amberdigital.com.hk(Amberdigital).we have explored and developed the international market with professionalism. We have built a widespread marketing network, and set up a capable management team dedicated to provide beyond-expectation services to our customers.

    amberdigital Contact Us

    website:www.amberdigital.com.hk
    alibaba:amberdigital.en.alibaba.com[djaeejiahdfeba]

    Oct. 19
    No namewrote:

    Hi,Do you need advertising displays, advertisement screens, LCD digital signage and LCD signages? Please go Here:www.amberdigital.com.hk(Amberdigital).we have explored and developed the international market with professionalism. We have built a widespread marketing network, and set up a capable management team dedicated to provide beyond-expectation services to our customers.

    amberdigital Contact Us

    website:www.amberdigital.com.hk
    alibaba:amberdigital.en.alibaba.com[dedfiijbaadfghb]

    Sept. 24
    Sept. 19
    No namewrote:

    Hi,Do you have mp4 used lcd screens, lcd monitor used, surplus lcds and scrap LCDs? Please go here:www.sstar-hk.com(Southern Stars).We are constantly buying re-usable LCD panels.The re-usable panels go through strictly designed process of categorizing, checking, testing, repairing and refurbishing before they are re-used to make remanufactured LCD displays and TV sets.Due to our recent breakthrough in testing and repairing technology of LCD, we can improve the value for your LCD panels.

    Contact Us

    E-mail:sstar@netvigator.com
    website:www.sstar-hk.com[a

    Aug. 30

    Trackbacks

    The trackback URL for this entry is:
    http://zachbonham.spaces.live.com/blog/cns!796D9CBF83641CEF!394.trak
    Weblogs that reference this entry
    • None