【问题标题】:RavenDB domain errorRavenDB 域错误
【发布时间】:2013-07-19 03:58:55
【问题描述】:

我已经在 IIS 上设置了一个 RavenDB 实例。我可以使用网络服务应用程序很好地连接到它,但是当我尝试连接然后使用在本地管理员下运行的应用程序进行初始化时,我收到错误“无法确定域的身份”。我唯一能想到的就是试图冒充“网络服务”,但我不确定这是否可能。管理员拥有 raven web 文件夹的完全权限。

【问题讨论】:

    标签: windows iis-7 ravendb impersonation


    【解决方案1】:

    在本地连接,您使用的是 http://localhost:[port] 吗?我在本地使用域名时遇到问题。

    尝试在本地运行您的应用程序并通过本地主机地址连接到 RavenDB。

    【讨论】:

    • 我正在连接“localhost/testRaven”,它在我的网络应用程序中运行良好,但在我的本地应用程序中失败。该地址在我的 Silverlight 应用程序中也可以正常工作。如果有帮助,异常会说它是“IsolaatedStorageException”。
    • 听起来像是一个安全问题,好像 Web 应用程序在受信任区域(例如 Intranet)中运行,但 raven 服务器在不同区域(例如 Internet)中运行。它们是否都在同一个 Internet Explorer 区域中运行(请记住,如果您在不同的 Web 浏览器中访问它并不重要;Silverlight 使用 Internet Explorer 中的这些区域。)
    • 另外,尝试使用机器名,而不是 localhost
    • 从浏览器访问工作正常。根据我的研究,我的 windows(c#) 应用程序似乎没有 AppDomain 应用程序库,因此 ravenDB 无法分配隔离存储。
    【解决方案2】:

    解决了这个问题。我必须在不同的应用程序域中运行我的 Raven 文档存储连接和初始化。我最终这样做了。

    string pathToDLL = installerFolder + "\\RavenSiteSetup.dll";
    AppDomainSetup domainSetup = new AppDomainSetup {
                                     ApplicationBase = installerFolder,
                                     PrivateBinPath = pathToDLL
                                 };
    
    Evidence ev1 = new Evidence();
    
    ev1.AddAssemblyEvidence(new ApplicationDirectory(
                             typeof(RavenSetup).Assembly.FullName)
                            );
    
    ev1.AddHostEvidence(new Zone(SecurityZone.Internet));
    AppDomain ad = AppDomain.CreateDomain("RavenSetup", ev1, domainSetup,
                   Assembly.GetExecutingAssembly().PermissionSet,null);
    
    IIdentity identity = new GenericIdentity("RavenSetup");
    IPrincipal principal = new GenericPrincipal(identity, null);
    ad.SetThreadPrincipal(principal);
    
    RavenSetup remoteWorker = (RavenSetup)ad.CreateInstanceFromAndUnwrap(
                pathToDLL,
                typeof(RavenSetup).FullName);
    
    remoteWorker.Connect(sitePath);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多