我的Web API在安装了.NET 4.6.1的IIS 8.5上运行。我添加了一个新的控制器,该控制器使用Npgsql NuGet package连接到PostgreSQL数据库。
现在,对于生产环境中对该控制器的每个请求,我都会收到一个异常(在我的本地计算机上,所有操作均按预期进行):
无法加载文件或程序集'System.Net.Sockets,版本= 4.2.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。该系统找不到指定的文件。 文件名:'System.Net.Sockets,Version = 4.2.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a' 在Npgsql.NpgsqlConnector.d__154.MoveNext() 在System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start [TStateMachine](TStateMachine&stateMachine)处 在Npgsql.NpgsqlConnector.ConnectAsync(NpgsqlTimeout超时,CancellationToken cancelledToken) 在Npgsql.NpgsqlConnector.d__152.MoveNext()
我在应用程序池中将Enable 32-Bit Applications
更改为true
,但这并不能解决问题。
我正在使用Visual Studio 2015。
更新
如果我添加System.Net.Sockets
而不是4.2.0.0版本,则会出现异常:
无法加载文件或程序集'System.Net.Sockets,版本= 4.2.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)