1

我正在尝试在 Medium Trust 中使用 RavenDB,我想尝试嵌入式模型,因为我使用的托管(便宜)不允许安装服务。我的初始化代码如下:

private void ConfigureStorage()
    {
        store = new EmbeddableDocumentStore();
        store.Configuration.DefaultStorageTypeName = "munin";
        store.Configuration.DataDirectory=Server.MapPath("$/App_Data");
        store.Initialize();
    }

在完全信任的情况下工作,但在 Medium 中它会抛出:

请求“System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限失败。 使用以下堆栈跟踪:

[SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
   System.StubHelpers.StubHelpers.DemandPermission(IntPtr pNMD) +0
   Microsoft.VisualBasic.CompilerServices.NativeMethods.GlobalMemoryStatusEx(MEMORYSTATUSEX& lpBuffer) +0
   Microsoft.VisualBasic.Devices.InternalMemoryStatus.Refresh() +68
   Microsoft.VisualBasic.Devices.InternalMemoryStatus.get_TotalPhysicalMemory() +11
   Microsoft.VisualBasic.Devices.ComputerInfo.get_TotalPhysicalMemory() +49
   Raven.Database.Config.InMemoryRavenConfiguration.GetDefaultMemoryCacheLimitMegabytes() +301
   Raven.Database.Config.InMemoryRavenConfiguration.Initialize() +631
   Raven.Database.Config.RavenConfiguration.LoadConfigurationAndInitialize(IEnumerable`1 values) +311
   Raven.Database.Config.RavenConfiguration..ctor() +189
   Raven.Client.Embedded.EmbeddableDocumentStore.get_Configuration() +99
   Wine2.MvcApplication.ConfigureStorage() +84
   Wine2.MvcApplication.Application_Start() +84

Raven 版本为:版本 573

是否有一些方法可以使其在中等信任下工作,或者这种情况不受支持?

4

2 回答 2

4

在严格的中等信任下,RavenDB 将无法工作。但是有很多托管公司在 RavenDB 工作的地方提供托管服务,因为他们调整了权限。

于 2012-01-30T16:23:48.150 回答
2

根据我的经验,我刚刚放弃尝试在Medium Trust中运行嵌入式商店。我遇到了您问题中描述的相同错误。

要克服这个问题,您可以尝试www.winhost.com,如下所述:

如何在共享主机环境中运行 RavenDB?

它具有如此理想的允许完全信任,这是在 RavenDB 的情况下应该寻找的东西,以避免当前的安全权限问题......

注意:我刚刚尝试过这个主机,可以确认它在完全信任的情况下与 RavenDB 配合得很好...... :-)

于 2012-02-06T05:10:49.453 回答