gpt4 book ai didi

azure - 如何让 Cosmos DB 模拟器在计算机启动/重新启动时自动启动

转载 作者:行者123 更新时间:2023-12-03 22:16:31 24 4
gpt4 key购买 nike

我们正在尝试使用 Azure 存储模拟器和 Azure CosmosDB 模拟器进行本地开发以及单元测试,作为 CI/CD 构建的一部分。以下是包含这些模拟器详细信息的主要链接: https://learn.microsoft.com/en-us/azure/cosmos-db/local-emulator

作为这项工作的一部分,我们需要某种方法来启动和停止这两个模拟器。我们尝试过在 Docker 上运行,但由于防病毒干预等原因,它有自己的问题,所以我不想在这篇文章中讨论该选项。

这是我们的主要要求 - 在机器重新引导/启动期间启动模拟器。在 Azure 存储模拟器的情况下,我们只需通过 Windows 任务计划程序调用适当的命令来启动模拟器即可实现此功能,这非常简单。因此,我们在 CosmosDB 模拟器上尝试了相同的方法,但它只是失败并出现“灾难性故障 (0x8000FFFF)”错误,没有太多详细信息来解决问题。这是在 Windows Server 2016 Standard 计算机上进行的,但我在 Windows 10 Enterprise 计算机上也得到了相同的结果。

从那时起,我尝试了一些其他选项,如下所示:

  1. 使用以下命令创建批处理文件并通过任务计划程序运行它:启动/d“C:\Program Files\Azure Cosmos DB Emulator”CosmosDB.Emulator.exe

当我手动运行批处理文件时,这有效,但不能通过任务计划程序运行。

  • 使用 PowerShell 的方法相同,结果与上述相同。

  • 最后,我使用 Topshelf 创建了一个 Windows 服务,该服务在使用 Visual Studio 运行或调试代码时再次起作用,但在我安装该服务并在服务控制台中运行它时则不起作用。

  • 我们尝试过使用不同的用户帐户,也使用具有管理员权限的帐户。我错过了在原来的帖子中添加以下详细信息:

    如果我或我的团队成员手动运行,CosmosDB 模拟器将会启动,但是当任务计划程序调用它时,以下错误将写入系统日志

    特定于应用程序的权限设置不会为具有 CLSID 的 COM 服务器应用程序授予本地激活权限 {D63B10C5-BB46-4990-A94F-xxxxxxxxxxxx} 和应用程序标识符 {9CA88EE3-ACB7-47C8-AFC4-xxxxxxxxxxxx} 从在应用程序容器中运行的地址 LocalHost(使用 LRPC)到用户 {Damain}{UserName} SID (S-1-5-21-174494438-4207865126-xxxxxxxxx-xxxxx) 不可用 SID(不可用)。可以使用组件服务管理工具修改此安全权限。

    还有其他选择可以使其正常工作吗?

    最佳答案

    在下面发布 David Noble 的答案,以便其他人可以使用它:

    GitHub issue #7990

    请允许我 self 介绍一下。我是 Cosmos DB 模拟器的开发所有者。感谢您的来信。

    要通过任务计划程序启动模拟器,请尝试使用此命令行选项:/noui。另请确保该任务在属于管理员组的帐户下以最高权限运行。

    我刚刚定义了这样一个任务,该任务在我登录到 Windows 10 开发盒时运行。它在属于本地管理员组的我的域帐户下运行此命令行:“C:\Program Files\Azure Cosmos DB Emulator\CosmosDB.Emulator.exe”/noui

    我确认,当我运行此任务时:

    •没有/noui 选项,我看到了您看到的错误:E_UNEXPECTED (0x8000FFFF),灾难性故障。

    •使用/noui 选项,模拟器可以正确启动(没有任务栏图标,也没有按预期打开数据资源管理器),并且我可以使用数据资源管理器创建文档。

    请尝试一下并让我们知道进展如何。如果需要的话,我会随时提供帮助。

    关于azure - 如何让 Cosmos DB 模拟器在计算机启动/重新启动时自动启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50138766/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com