Unity works on my PC but not on the Server. What did I miss?
- by Erik France
I have a web service using Microsoft Unity to hook the pieces together. It all works fine on my PC but when I put it on the web server, I receive this error message:
System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: The value of the property 'type' cannot be parsed. The error is: Method 'GetClaimsForUser' in type 'WebService.Implementation.ClaimsRetriever' from assembly 'WebService.Implementation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=62cac0f1a908971a' does not have an implementation.
If I look at the web.config, I see the following:
<unity>
<typeAliases>
<typeAlias alias="ITokenGenerator" type="WebService.Interfaces.ITokenGenerator, WebService.Interfaces" />
<typeAlias alias="TokenGenerator" type="WebService.Implementation.TokenGenerator, WebService.Implementation" />
<typeAlias alias="IClaimsRetriever" type="WebService.Interfaces.IClaimsRetriever, WebService.Interfaces" />
<typeAlias alias="ClaimsRetriever" type="WebService.Implementation.ClaimsRetriever, WebService.Implementation" />
<typeAlias alias="TokenGeneratorSettings" type="WebService.Implementation.TokenGeneratorSettings, WebService.Implementation" />
<typeAlias alias="String" type="System.String, mscorlib" />
</typeAliases>
<containers>
<container>
<types>
<type type="ITokenGenerator" mapTo="TokenGenerator">
<typeConfig extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement, Microsoft.Practices.Unity.Configuration">
<constructor>
<param name="retriever" parameterType="IClaimsRetriever">
<dependency />
</param>
<param name="settings" parameterType="TokenGeneratorSettings">
<dependency />
</param>
</constructor>
</typeConfig>
</type>
<type type="IClaimsRetriever" mapTo="ClaimsRetriever">
<typeConfig extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement, Microsoft.Practices.Unity.Configuration">
<constructor>
<param name="connectionStringName" parameterType="String">
<value value="devDatabase" type="String" />
</param>
</constructor>
</typeConfig>
</type>
</types>
</container>
</containers>
</unity>
I have another web service, using an almost identical config running on the web server. But this new web service will not run.
Any ideas on what I have not told Unity to do? Or maybe what I told Unity to do incorrectly?