Problems in building WF 4.0 based Service
I created a sample service use WF 4.0 XAML only. When I tried to run it I got an error telling me that I had not enabled publishing of metadata. However, I had added the following:
<service name="TestService" behaviorConfiguration="WFStockPriceApplication.TestServiceBehavior">
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<endpoint name="TestService" address="" binding="basicHttpBinding" contract="TestServiceContract"/>
</service>
.
.
.
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="True"/>
</behavior>
</serviceBehaviors>
I added them in the appropriate place, but it simply did not work. So, I attempted to right-click and view the source of the .xamlx file that was the XAML only application. I guess there is a bug in Dev10, because it would not go to source view and just kept showing me the designer. To accomplish View Source I opened the file in the XML editor. To my surprise I found:
<WorkflowServiceImplementation ConfigurationName="Service1" Name="Service1">
I didn't name it Service1. So, I replaced Service1 with the name TestService, I saved the changes, and compiled. Then, I attempted to run again and got the same error. So, I went back to review the code of the XAMLX file and found that during compilation studio (or some part of the compile and build engines) had written back over my change and put it back to Service1.
To get past the problem at the moment I replaced the name in the web.config and change the TestService names to Service1. That took care of the problem, but who knows what will happen if I try to add another in the same project. Tomorrow I'll start investigating how I can affect a name change in the .xamlx file and have it stick
Comments
- Anonymous
April 27, 2009
The plan is that editing the xamlx directly will not be supported and it will be regenerated every build. The only way around it is to ensure that the designer window is closed and open the xamlx in an editor (e.g., Notepad) then edit, save, and close before reopening the designer window.