by Pieter Brinkman
20. August 2009 02:53
When deploying a Silverlight application we ran into problems a WCF web-service, to find out what the problem was I wanted to invoke the method.
Microsoft shipped an application for invoking methods from your Windows PC (WCFtestclient.exe). The following steps explain how to use WCFtestclient.exe.
First startup Visual Studio 2008 Command Prompt. In the command prompt type wcftestclient, the application will startup.
Now we need to add the Service. Click File and Add Service.

Add the URL to your service in the pop-up and pres ok. The service will now add all methods from your service. You can add multiple service URLs.
Double click the method you want to invoke from the tree on the left pane. Enter the values that are required for the Invoke and press Invoke. The method will be invoked.

The right bottom pane will show the response. In my case this shows the Stack-trace because of the error. Normally this will show the web-service response (XML).
With the stack-trace I could located the error and fix it.
Hope this helps,
Pieter
by Pieter Brinkman
7. May 2009 05:34
When deploying a WCF webservice for a Silverligh application I got the following error:
An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
System.InvalidOperationException: An exception was thrown in a call to a WSDL export extension: System.ServiceModel.Description.DataContractSerializerOperationBehavior
contract: http://tempuri.org/:IWebService ----> System.Runtime.Serialization.InvalidDataContractException: Type 'Project.service.HU_BACH.ScPlacemark' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute.
As you can see from the error you need to add the [Serializable] attribute to all objects that are used within the webservice. After I did this I got the same error for my Linq to Sql objects generated within my DBML. You can make your Linq to Sql objects serializable by changing the dbml setting Serialization Mode to Unidirectional.
Hope it helps.
by Pieter Brinkman
2. February 2009 09:53
After running WCF on my Vista laptop (IIS7) I needed to deploy the application on some Windows XP computers. Again some strange errors occurred:
[code:html]
Error Description: "This collection already contains an address with scheme http. There can be at most one address per scheme in this collection.
Parameter name: item"
[/code]
The problem is that WCF cannot handle more than one identity (host headers) per website. At first I configured IIS to have one HostHeader. That solution was just to dirty. So I kept on searching the internet.
You can fix this problem by adding prefix-key(s) in the baseAddressPrefixFilters section of the Web.Config:
[code:xml]
<system.serviceModel>
<serviceHostingEnvironment>
<baseAddressPrefixFilters>
<add prefix=”http://www.local.develop”/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
</system.serviceModel>
[/code]
Hope this helps.
Sources:
http://geekswithblogs.net/robz/archive/2007/10/02/WCF-in-IIS-with-Websites-that-have-Multiple-Identities.aspx
http://blogs.msdn.com/rampo/archive/2008/02/11/how-can-wcf-support-multiple-iis-binding-specified-per-site.aspx