Each of the Patriot component programs has its own configuration file which when installing certain add-on modules and/or tasks may require manual editing to define assembly bindings.
After making any changes to a component program configuration file you must restart that component program for the changes to take effect. It is recommended when editing configuration files that you copy and paste directly from this document because any minor typing error will result in the configuration file being ignored at program startup.
Assembly bindings defined in the Patriot configuration file instruct Patriot to use the correct version of dependent assembly files. If your assembly bindings are incorrect or missing you will see assembly binding errors in the Windows event log. E.g. if you attempt to use the Patriot ICA or API add-on module without having the correct Data Service configuration your will see an error in the event log when you attempt to browse to your ICA website or access the API:
'Could not load file or assembly 'System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference'
The following Patriot add-on modules are known to require assembly binding configuration:
In the Patriot Data Service install directory, edit the PatriotService.exe.config file. You will likely need administrative privileges to write to this file.Find the <runtime> section and ensure that the following sections exist within the <assemblyBinding> subsection:
<configuration>
…
<runtime>
<assemblyBinding
xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity
name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral"
/>
<bindingRedirect
oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity
name="System.Web.Http.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"
/>
<bindingRedirect
oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity
name="System.IdentityModel.Tokens.Jwt" publicKeyToken="31bf3856ad364e35"
culture="neutral" />
<bindingRedirect
oldVersion="0.0.0.0-4.0.20622.1351" newVersion="4.0.20622.1351"
/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity
name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"
/>
<bindingRedirect
oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity
name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"
/>
<bindingRedirect
oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity
name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral"
/>
<bindingRedirect
oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
…
The following Patriot tasks are known to require assembly binding configuration:
In the Patriot Task Service install directory, edit the CSMService.exe.config file. You will likely need administrative privileges to write to this file.
Find the <runtime> section and ensure that the following sections exist within the <assemblyBinding> subsection:
<configuration>
…
<runtime>
<assemblyBinding
xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity
name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"
/>
<bindingRedirect
oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity
name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral"
/>
<bindingRedirect
oldVersion="0.0.0.0-1.40.0.0" newVersion="1.40.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity
name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral"
/>
<bindingRedirect
oldVersion="0.0.0.0-1.40.0.0" newVersion="1.40.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity
name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"
/>
<bindingRedirect
oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity
name="Google.Apis" publicKeyToken="4b01fa6e34db77ab" culture="neutral"
/>
<bindingRedirect
oldVersion="0.0.0.0-1.40.0.0" newVersion="1.40.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
…
</configuration>