0

我正在使用 db4o 的嵌入式客户端/服务器版本(我调用 OpenServer() 而不是 OpenFile() 方法),以便我可以托管一个 asp.net 网站,该网站将有多个用户同时读取和写入数据库。唯一的问题是我们使用的虚拟主机是一个中等信任的环境,所以它会抛出一个错误,指出程序集不支持部分信任的调用者......

想知道是否有人对如何使其工作有任何建议。谢谢!

:: 更新 ::

我已经使用 [AllowPartiallyTrustedCallers] 属性重新编译了 db4o dll,现在我收到以下特定错误:

System.TypeInitializationException 未被用户代码处理 Message="The type initializer for 'DataObjecten.db4oManager' throw an exception." TypeName="DataObjecten.db4oManager" InnerException: System.Security.SecurityException Message="请求 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 类型的权限失败。 " Source="Db4objects.Db4o" StackTrace: 在 Db4objects.Db4o.Internal.Platform4.AddShutDownHook(PartialObjectContainer container) 在 Db4objects.Db4o.Internal.PartialObjectContainer.Initialize1(IConfiguration config) 在 Db4objects.Db4o.Internal.PartialObjectContainer.Open() 在Db4objects.Db4o.Internal。

4

3 回答 3

0

我不知道这是否有效,但您可以尝试编写一个AllowPartiallyTrustedCaller设置为 true 的包装 DLL,并将所有调用传递给 db4o DLL。

看到 db4o 是开源AllowPartiallyTrustedCaller的,您当然可以自己下载并重新编译设置为 true。

然而,这个线程表明这可能行不通。

于 2009-06-29T09:08:36.223 回答
0

我也遇到了这个问题,在中等信任的 Web 应用程序环境中,db4o 似乎无法在客户端/服务器模式下工作。
This project for ASP.NET Providers using db4o似乎证实了这一点。
它指出 db4o 依赖于反射和非托管代码,这两种代码都在中等信任中被禁止。
我认为你唯一的希望就是遵循他们的建议并找到一个共享的提供者,让你可以完全信任地运行你的代码。
非常令人失望,因为我很喜欢使用 db4o,而这只是破坏了几个星期的工作。

于 2010-06-16T11:04:58.843 回答
-1

我发现 db4o 不能在中等信任环境中工作。任何正在寻找可嵌入或启用服务器并可在中等信任环境中使用的 nosql 解决方案的人都应该看看 ravendb.net - 解决了我所有的问题......(必须使用 munin 托管存储引擎)。

类似于对象数据库 (db4o),但没有所有令人头疼的问题,而且用途更广泛。此外,还可以通过 JSON/HTTP 处理链接或标准查询等内容...

大福利是:

通过 Lucene.NET Sharding/Au​​to-Sharding Replication (WAN/LAN) 进行全文搜索在中等信任度下跑步

于 2011-06-08T19:48:45.067 回答