我使用的是db4o的嵌入式客户机/服务器版本(我调用的是OpenServer()而不是OpenFile()方法),这样我就可以托管一个asp.net网站,让多个用户同时对数据库进行读写。唯一的问题是我们使用的webhost是一个中等信任的环境,所以它抛出了一个错误,声明程序集不支持部分信任的调用者……
不知道是否有人有任何建议,如何让这个工作。谢谢!
::更新::
我已经使用AllowPartiallyTrustedCallers属性重新编译了db4o dll,现在收到以下特定错误:
用户代码Message=未处理System.TypeInitializationException“'DataObjecten.db4oManager‘的类型初始值设定项抛出异常。”TypeName="DataObjecten.db4oManager“InnerException: System.Security.SecurityException Message=”请求类型为'System.Security.Permissions.SecurityPermission,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089‘的权限失败。“在Db4objects.Db4o.Internal.Platform4.AddShutDownHook(PartialObjectContainer容器处的字符串“Source=”StackTrace)在Db4objects.Db4o.Internal.PartialObjectContainer.Initialize1(IConfiguration配置处)在Db4objects.Db4o.Internal.PartialObjectContainer.Open()处在Db4objects.Db4o.Internal.IoAdaptedObjectContainer..ctor(IConfiguration配置处,在Db4objects.Db4o.Internal.ObjectContainerFactory.OpenObjectContainer(IConfiguration配置处的字符串fileName),字符串databaseFileName)位于Db4objects.Db4o.Db4oFactory.OpenFile(IConfiguration配置,字符串databaseFileName)位于Db4objects.Db4o.Db4oFactory.OpenServer(IConfiguration配置,字符串databaseFileName,Int32端口,INativeSocketFactory socketFactory)位于Db4objects.Db4o.Db4oFactory.OpenServer(IConfiguration配置,字符串databaseFileName,Int32端口)位于DataObjecten.db4oManager..cctor() InnerException:
发布于 2011-06-08 19:48:45
我发现db4o不能在中等信任环境中工作。任何正在寻找一种可嵌入或支持服务器并可在中等信任环境中使用的nosql解决方案的人,都应该看看ravendb.net --解决了我所有的问题……(必须使用munin托管存储引擎)。
类似于对象数据库(db4o),但没有所有令人头疼的问题,而且更加通用。此外,还可以通过JSON/HTTP使用链接或标准查询等功能...
最大的好处是:
通过Lucene.NET分片/自动分片复制(广域网/局域网)进行全文搜索LINQ索引/自动索引卓越的性能(比db4o快得多)本机.NET ACID兼容事务多租户在客户端/服务器模式下运行或嵌入式能够在中等信任中运行
发布于 2009-06-29 01:08:36
我不知道这是否有效,但您可以尝试编写一个将AllowPartiallyTrustedCaller
设置为true的包装器DLL,并将所有调用传递给db4o DLL。
由于db4o是开源的,您当然可以自己下载并重新编译,并将AllowPartiallyTrustedCaller
设置为true。
然而,This线程表明这可能不起作用。
发布于 2010-06-16 11:04:59
我也遇到了这个问题,似乎db4o在中等信任的web应用程序环境中不能在客户机/服务器模式下工作。
This project for ASP.NET Providers using db4o似乎证实了这一点。
它声明db4o依赖于反射和非托管代码,这两者在中等信任中都是被禁止的。
我认为你唯一的希望是遵循他们的建议,找到一个共享的提供者,允许你在完全信任的情况下运行你的代码。
非常令人失望,因为我很喜欢和db4o一起工作,这让我几个星期的工作泡汤了。
https://stackoverflow.com/questions/1057315
复制相似问题