Running WCF on IIS 5 (Windows XP)

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

HTTP Error 404.17 with IIS7 (Vista)

While playing with IIS 7 I accidental destroyed my IIS (XML) settings file. To fix this problem I copied the .XML from a colleague PC to mine. After this my IIS started giving a strange error:

HTTP Error 404.17 – Not Found – The requested content appears to be script and will not be served by the static file handler.

After a quick search I found out that I copied the .XML from a 32 bit PC to my 64 bit Vista and that all my Application Pools where now running on 64-bit. So my application stopped working because it's 32 bit.

To fix this problem go to IIS, right click your Application Pool and set the Enable 32-bit Applications to true.