locked
Maitaining the service published using WCF Publishing Wizard RRS feed

  • Question

  • We are exposing schemas as WCF service in BizTalk 2010 using BizTalk WCF Publishing Wizard. Once we define the service is published, if we make any changes to the schema, how would I update the service without publishing the schema again using the Wizard? Since we define several operations in the service, we do not want to recreate everything when the schema is modified. Please advise the best practice

    Wednesday, August 10, 2011 5:14 PM

Answers

  • I guess, most of us would have faced this issue while working with exposed WCF services.

    You can find WcfServiecDescription.xml under <generated_service_folder>\App_Data\Temp. Use this as parameter to BtsWcfServicePublishingWizard.exe tool (this can be found inside BTS installation folder) and invoke this command from command line or add it as External tool under Visual Studio Tools menu. Then you can see that, most of the settings including service names, operations, namespaces etc. will be preselected.

    If the service meta data is not consumed by client (we had this scenario when source PeopleSoft system calls WCF service and they already have updated schemas as they provide us schemas), then it would work even if we dont regenerate service again with revised scehmas. We just need to deploy revised schemas.

     

    HTH.


    Please mark it as answer by clicking on "Propose As Answer", if it helps. My Blog : http://dotnetizen.blogspot.com
    • Marked as answer by arasheed Wednesday, August 10, 2011 6:47 PM
    Wednesday, August 10, 2011 5:33 PM

All replies

  • I guess, most of us would have faced this issue while working with exposed WCF services.

    You can find WcfServiecDescription.xml under <generated_service_folder>\App_Data\Temp. Use this as parameter to BtsWcfServicePublishingWizard.exe tool (this can be found inside BTS installation folder) and invoke this command from command line or add it as External tool under Visual Studio Tools menu. Then you can see that, most of the settings including service names, operations, namespaces etc. will be preselected.

    If the service meta data is not consumed by client (we had this scenario when source PeopleSoft system calls WCF service and they already have updated schemas as they provide us schemas), then it would work even if we dont regenerate service again with revised scehmas. We just need to deploy revised schemas.

     

    HTH.


    Please mark it as answer by clicking on "Propose As Answer", if it helps. My Blog : http://dotnetizen.blogspot.com
    • Marked as answer by arasheed Wednesday, August 10, 2011 6:47 PM
    Wednesday, August 10, 2011 5:33 PM
  • Thanks Rajesh. Just to make sure I understand the 2nd part of your response (re: If the service meta data is not consumed by client  then it would work even if we dont regenerate service again with revised scehmas). I'm not sure I get this.

    The services that need to send a message to BizTalk would add the the service that we expose using the BizTalk wizard (as servie reference)

    Here is how it is:

    Publishing Service --------> Service Exposed by BizTalk ---------------> BizTalk --------------------> Subscriber

    Can you please so kind to provide aditional clarification? Thanks for helping.

     

     

    Wednesday, August 10, 2011 5:46 PM
  • You may understand it better, if I probably mention the case that we have.

    Our source PeopleSoft system owns all (inbound and outbound) schemas that we use to communicate with them. When they give us their schema for thier outbound schema, we create a WCF service out of that schema and they directly send message instance of that schema to the service url. So they do not use any service reference/client proxies like we usually do in .NET or Java based clients. When we kept on getting changes to these schemas, updating WCF service was a bit of time consuming. Once we ignored to that and just deployed the updated schemas. But it did not affect anything and message instances of updated schema just worked fine as we deployed revised schemas into BizTalk db and GAC already. So cases like this would not need updating WCF service (although it is not best way to do), as source system anyways is not going to use service to generate meta data.

    Since you seem to using service meta data in your clients, this might not be applicable to you. So you would need to update WCF service in order for clients to get revised contracts of the service.

    Hope, this adds little more sense now !!!


    Please mark it as answer by clicking on "Propose As Answer", if it helps. My Blog : http://dotnetizen.blogspot.com
    Wednesday, August 10, 2011 6:42 PM
  • Thank you very much
    Wednesday, August 10, 2011 6:47 PM
  • I can't get the publishing wizard to recognize a service description as a parameter (it just ignores it).  I also can't seem to find a modern version of BtsWcfServicePublishing.exe - just an old one from 2008.
    Thursday, November 1, 2012 3:23 PM
  • I built a tool on Codeplex for this very reason - check out http://btswcfpub.codeplex.com/ . It's a quick and dirty way to refresh your WCF services provided you already have your service configuration XML file already put together.

    HTH,

    Lucas


    Endpoint Systems http://endpointsystems.com | Figaro - the XML Database for the .NET Framework http://bdbxml.net

    • Proposed as answer by Lucas Vogel Thursday, November 1, 2012 4:36 PM
    Thursday, November 1, 2012 4:36 PM