Hiding the XAMLX from a workflow service

In Windows Workflow Foundation 4 it’s easy to create a workflow and expose it as a WCF service. But one thing is that it exposes a XAMLX endpoint to each client can see the service actually implemented as a workflow service instead of a regular service. One way to hide that is to use a regular SVC file as the implementation and point that to a workflow using the WorkflowServiceHostFactory.   See the original XAMLX extension   To change this to an SVC extension we need to do a few things. First we need to use a regular workflow instead … Continue reading Hiding the XAMLX from a workflow service

Opening a VS2010 project from another location

Whenever I download Visual Studio 2010 projects from the Internet and open the solution I am always prompted by the following message “Security Warning for [project name]. You should only open projects from a trustworthy source”. The warning makes sense because who knows what the code will do and we all run virus scanners for a good reason. Its easy enough to suppress the warning for multiple projects in the same solution but next time you open the solution you get prompted with the same security warning.   Fixing this is quite easy, just select the project file in the … Continue reading Opening a VS2010 project from another location

More Workflow 4 Services and duplex communications

Yesterday I posted a long blog post explaining how to do duplex communications in a Workflow service. Its a long story but the most important points where that workflow services don’t support the same style duplex communication as WCF with the callback channel defined in the ServiceContract but rather something that is called durable duplex where the callback contract is independent and the client has to create a ServiceHost and act as a full-blown WCF service. Also the callback address had to be passed by the client using CallbackContextMessageProperty and the workflow service had to use a callback correlation handle … Continue reading More Workflow 4 Services and duplex communications

Workflow 4 Services and duplex communications

There are quite a a few cases where it is useful to have a duplex communications. An obvious candidate is allowing a service to notify the user interface application of the progress so the user knows what is happening. Normally, when using plain WCF, you would use a ServiceContract attribute with a CallbackContract that specified the service uses duplex communications. For example something like the following code on the server: [ServiceContract(CallbackContract = typeof(IService1Callback))] public interface IService1 { [OperationContract] string GetData(int value); }   [ServiceContract] public interface IService1Callback { [OperationContract] void Reply(string message); } along with a client like this: class … Continue reading Workflow 4 Services and duplex communications