WS-AT - getting Disabled address for Registration Service

Hi,

I tried searching the web as well this forum before posting this question. As i didn't find answer anywhere, i'm posting it here.

I'm trying to interact with a transaction enabled WCF service from a transaction initiator WCF client. I've done all that is required to enable interoperable endpoint for WS-AT. when i run wsatconfig ./show command i get the following output:

WSAT enabled: True
DotNet port enabled: True
TCP port: 2372
Kerberos GACL:
NT AUTHORITY\Authenticated Users
Interop port enabled: True
HTTPS Port: 2373
Identity certificate: 04363965BA1912B17B2619E56861BADE30AA9ECE
Accepted certificates:
BDY5ZboZErF7JhnlaGG63jCqns4=
Default timeout: 60
Maximum timeout enabled: True
Maximum timeout: 3600
Tracing level: Warning


When the request message goes it has following entry in <RegistrationService> element (i've also provided full message below) I'm getting a "DIABLED" address

<RegistrationService>
<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">
https://narang/WsatService/Registration/Coordinator/Disabled/</Address>
<ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">
<mstx:RegisterInfo>
<mstx:LocalTransactionId>e2bf7501-9f54-460a-ac0f-d4354b3928cc
</mstx:LocalTransactionId>
</mstx:RegisterInfo>
</ReferenceParameters>
</RegistrationService>

The communications happens successfully when both service as well as clients are WCF and transaction gets incremented in MSDTC also. However, when i try the same client with a WebSphere service, i get timeout error - that i feel is because of this DISABLED address.

I have some log messages from earlier samples - this address used to be

<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">https://dpae12w170d.digitalindiasw.net/WsatService/Registration/Coordinator/Interop/</Address>

Any idea - what's happening here Why am i getting disabled address - how can i avoid that

Here is full message:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><CoordinationContext s:mustUnderstand="1" xmlns="http://schemas.xmlsoap.org/ws/2004/10/wscoor" xmlns:mstx="http://schemas.microsoft.com/mb/2003/12/transactions"><wscoor:Identifier xmlns:wscoor="http://schemas.xmlsoap.org/ws/2004/10/wscoor">uuid:e2bf7501-9f54-460a-ac0f-d4354b3928cc</wscoor:Identifier><Expires>58880</Expires><CoordinationType>http://schemas.xmlsoap.org/ws/2004/10/wsat</CoordinationType><RegistrationService><Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">https://narang/WsatService/Registration/Coordinator/Disabled/</Address><ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"><mstx:RegisterInfo><mstx:LocalTransactionId>e2bf7501-9f54-460a-ac0f-d4354b3928cc</mstx:LocalTransactionId></mstx:RegisterInfo></ReferenceParameters></RegistrationService><mstx:IsolationLevel>0</mstx:IsolationLevel><mstx:LocalTransactionId>e2bf7501-9f54-460a-ac0f-d4354b3928cc</mstx:LocalTransactionId><OleTxTransaction xmlns="http://schemas.microsoft.com/mb/2004/02/tx/oletx"><PropagationToken>AQAAAAMAAAABdb/iVJ8KRqwP1DVLOSjMAAAQAAAAAACAAAAAAP///4LS6HlX0uh5clisZ9oT8nlyWKxnxO0SAPQbHwHItxQACO0SAGQ3NjA5YmI3LTJlZmQtNDJjMS05MGEzLTZiNjRhNzllOWJjNgAAAAAGAAAAZM1kzSEAAABOQVJBTkcAABAAAABOAEEAUgBBAE4ARwAAABkAAQAAAAAAAAAgAAAAdGlwOi8vbmFyYW5nLmRpZ2l0YWxpbmRpYXN3Lm5ldC8AAAAA</PropagationToken></OleTxTransaction></CoordinationContext></s:Header><s:Body><Order xmlns="http://dto.service.warehouse.sip.hp" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><OrderNumber>TEST_OrderNo</OrderNumber><OrderDate>2006-10-02</OrderDate><OrderedBy>Sanjay Narang</OrderedBy><ShipByDate>2006-10-10</ShipByDate><OrderDetails><OrderDetail><PartNumber>TEST_PartNo</PartNumber><Quantity>10</Quantity></OrderDetail></OrderDetails><Status>ACCEPTED</Status></Order></s:Body></s:Envelope>

Thanks
Sanjay



Answer this question

WS-AT - getting Disabled address for Registration Service

  • Duane Haas

    Hmm, if you haven't already done so, restart your WCF client and see if that helps.

    If it does not, please run the following program on your client machine and send me back the whereabouts.dat output file. Email is 'jessey' @ the standard microsoft.com address.

    byte[] whereabouts = TransactionInterop.GetWhereabouts();

    File.WriteAllBytes("whereabouts.dat", whereabouts);


  • Blast

    It's WCF Feb 2006 CTP - and i won't be able to move to latest version at the moment as there are many sevices deployed in the environment. However, as i pointed out in previous post, i was getting the proper address earlier with the same version of WCF
  • arkiboys

    Can you check the EventLog and look for a message from Microsoft.Transaction.Bridge right after you restart MSDTC There should be a message saying that WS-AT initialized correctly. If you do not see this message you most likely do not have the appropriate QFE installed for COM+ / MSDTC. Head on over to http://support.microsoft.com/ kbid=912817 (WinXP) or http://support.microsoft.com/ kbid=912818 (Win2k3) and install the update.

    Also, the certificate you use needs to have a SubjectName matching the FQDN of your machine -- so something like machine2.domain.com.

    I'm somewhat perplexed, however, about what you are seeing from the WsatConfig tool though. If you are indeed on Feburary CTP bits, the output you are receiving from that tool seems to indicate a somewhat older version.


  • luca82

    Thanks again

    I've sent you the output file that i got from your program

    Sanjay


  • vishwanatha

    Jesse,

    Thank you so much for your time on this thread. I'm sorry for delayed response. Here are answers to your questions:

    1. I get success message in event viewer when MSDTC is started. Infact i got a message from source as Microsoft.Transactions.Bridge. Here are the event infos:

    Event Type: Information
    Event Source: MSDTC
    Event Category: TM
    Event ID: 2444
    Date: 10/9/2006
    Time: 8:40:02 PM
    User: N/A
    Computer: NARANG
    Description:
    MS DTC started with the following settings:

    Security Configuration (OFF = 0 and ON = 1):
    Network Administration of Transactions = 0,
    Network Clients = 0,
    Inbound Distributed Transactions using Native MSDTC Protocol = 1,
    Outbound Distributed Transactions using Native MSDTC Protocol = 1,
    Transaction Internet Protocol (TIP) = 0,
    XA Transactions = 0

    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

    Event Type: Information
    Event Source: Microsoft.Transactions.Bridge
    Event Category: WS-AT
    Event ID: 13
    Date: 10/9/2006
    Time: 8:40:02 PM
    User: NT AUTHORITY\NETWORK SERVICE
    Computer: NARANGhow
    Description:
    The WS-AT protocol service successfully completed startup and recovery.
    Protocol ID: cc228cf4-a9c8-43fc-8281-8565eb5889f2
    Protocol Name: WS-AtomicTransactions 1.0
    Process Name: msdtc
    Process ID: 3572

    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

    2. I changed the subject of certificate that is being used by WS-AT to FQDN of my machine, however the result is same

    3. I'm sure I'm using Feb CTP, the top lines of WSAT config show the following:

    WSAT Configuration Tool
    [Microsoftr .NET Framework, Version 3.0.50727.357]
    Copyright (c) Microsoft Corporation. All rights reserved.

    Here's all i can provide now. Let me know if you need any more info.

    Thanks once again

    Sanjay


  • eric1969

    Hi Jesse,

    Thank you so much for your response. Here are answers to your questions:

    1, MSDTC both inbound as well as outbound security are enabled and the option selected is "Mutual Authenication Required". I've restarted MSDTC 2-3 times just to make sure that all configurations are enabled. Still i'm getting the disabled address. (I'm using it on a Win XP SP2 machine)

    2. Yes, as you pointed out WebSphere 6.0.2.9 doesn't support WS-AT with WCF. We tried that few months back, we could solve message schema problems with some referesh packs, but HTTPS was a probles. Now as WAS 6.1 supports secure transactions - we are trying with that.

    3. I'm using a self signed certificate created by makecert.exe (from Visual Studio 2005 and NOT from Windows SDK). It has a priate key and is installed in both "personal" as well as "Trusted Root Certifications Authority" (to make the certicate trusted) stores of local computer account (NOT user account) - but still i get disabled address. The command that i used to create the certificate was:

    makecert -r -pe -n "CN=SIP Project" -ss my -sr localMachine -sky exchange c:\temp\TestCertMy.cer

    I'd appreciate if you can help in solving disabled address problem with above information - i'd get my colleague to configure WAS as per their documention

    Cheers

    Sanjay


  • Vaneet375270

    Can you tell me what WCF version you are using

    Thanks,

    Andy Milligan



  • AlexBB

    Hi Sanjay,

    A few things here:

    - WCF to WCF communication works because we bypass true WS-AT processing for ease of deployment and optimization purposes

    - Which version of WebSphere are you using If it’s anything less than 6.0.2.9 then things will probably not work. Not only were there message schema problems in that version but HTTPS transaction security as we require for WS-AT could not be enabled either.

    - Please contact WebSphere support for determining how to enable transaction security in their newer versions

    - If you a seeing a ‘Disabled’ address that’s probably because ‘Outbound’ transaction security for MSDTC is turned off. Please enable that.

    - WS-AT communication is secure. There’s no way around that. Our chosen method of implementing interoperable security is through the use of x509 certificates over https communication. Can you describe your certificates a bit What is the SubjectName and is this certificate fully trusted and does it have a private key


  • WS-AT - getting Disabled address for Registration Service