我一直在运行一个包含多个项目的解决方案,这些项目可以连接/更新等 MongoDb。这些项目是 c# dll 和 c# excel 项目(和单元测试项目)。
我现在有另一个带有 asp.net mvc 4 项目的解决方案,并且正在使用相同的代码尝试从同一个 MongoDb 中读取。一个示例调用代码是:
const string RESULT = "000000000000000000000000";
string connectionString = ConfigurationManager.ConnectionStrings["MongoServerSettings"].ConnectionString;
var client = new MongoClient(connectionString);
var server = client.GetServer();
var db = server.GetDatabase("test");
var entityCollection = db.GetCollection<MyObj>("Test");
var test = entityCollection.AsQueryable().Single(x => x.Id == RESULT);
我在新的 asp.net 项目中遇到的错误是:
Unable to connect to server localhost:27017: Request for the permission of type 'System.Net.SocketPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
连接字符串与成功的解决方案相同,但现在已添加到 web.config 文件中:
<add name="MongoServerSettings" connectionString="mongodb://localhost/test" />
我没有在第一个解决方案中使用对 System.Net.SocketPermission 的任何引用(我不认为)。
你能看出这是不是我犯的一些小错误吗?如果我错过了重要信息,请告诉我,我会更新。
请注意,我对这个令人兴奋的软件开发世界非常陌生,所以请原谅任何松散的术语。此外,我在另一台可以完成这项工作的 Web 服务器上运行 Sql 服务器,但我热衷于使用 MongoDb,因为一切都已准备好使用它。
编辑 正如 WiredPrairie 在下面提到的,我需要做的只是将信任级别从中等更改为完全。