0
votes

First of all I publish my website in windows 7 and everything goes alright. But when I'm trying to publish the same website in windows server 2008 r2 I got this error:

Server Error in '/MyWebsite' Application. Could not load file or assembly 'System.Net.Http' or one of its dependencies. Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045)

Can any body help me, please!! I looked for this error for days now and I got nothing to do. Thanks in advance!

1
Does this assembly exist in bin folder or it is loaded from GAC on W7 machine?Ivan Doroshenko
What version of .net? Are you maybe using 4.5.1 on Windows 7 but 4.5 on the server?PMC
or check the trust level?PMC

1 Answers

0
votes

It seems you not copied your dll to your another website in window server 2008 r2

if you already copied .dll to your 2008 iis then ..

First check

Both are system are running in same 64bit or 32bit ?

If not then

1.Open IIS Manager

2.Select Application Pools

3.then select the pool you are using

4.go to advanced settings (at right side)

  1. Change the flag of Enable 32-bit application false to true.

Another solution

1- check if you are referencing an assembly which in turn referencing an old version of unity. for example let's say you have an assembly called ServiceLocator.dll which needs an old version of Unity assembly, now when you reference the ServiceLocator you should provide it with the old version of Unity, and that makes the problem.

2- may be the output folder where all projects build their assemblies, has an old version of unity.

you can use FuseLogVw application to find out who is loading the old assemblies, just define a path for the log, and run your solution, then check (in FuseLogvw) the first line where the Unity assembly is loaded, double click it and see the calling assembly, and here you go.

There are many other possibilities..