If you don't want to put those DLLs in SYS32 on the server for whatever reason (ours was for massive deployment) you can use the following modification in your Global.asax, and then put your unmanaged DLLs in an "unmanaged" folder inside bin. 64 bit dllls should go under x64 in that unmanaged folder. The + are plus signs. Not sure why they are being encoded.
static MvcApplication()
{
if (IntPtr.Size == 4)
{
// 32-bit
System.Environment.SetEnvironmentVariable("Path", HostingEnvironment.ApplicationPhysicalPath + "bin/unmanaged;" + System.Environment.GetEnvironmentVariable("Path"));
}
else if (IntPtr.Size == 8)
{
// 64-bit
System.Environment.SetEnvironmentVariable("Path", HostingEnvironment.ApplicationPhysicalPath + "bin/unmanaged/x64;" + System.Environment.GetEnvironmentVariable("Path"));
}
}