Azure cosmosdb Cosmos DB模拟器赢得';不要在Windows 10上启动

Azure cosmosdb Cosmos DB模拟器赢得';不要在Windows 10上启动,azure-cosmosdb,Azure Cosmosdb,当我尝试启动Cosmos Emulator 2.7.2.0时,收到此错误: 在一台新的win10机器上试用过,现在可以用了。你有什么想法吗 我试了所有的方法 查看etl文件也没有给我任何信息 这是我第一次尝试在我的机器上安装它 --更新-- 我打开了dmp文件,发现: Loading Dump File [C:\Users\xxx\AppData\Local\CrashDumps\Microsoft.Azure.Cosmos.StartupEntryPoint.exe(1).12596.dm

当我尝试启动Cosmos Emulator 2.7.2.0时,收到此错误:

在一台新的win10机器上试用过,现在可以用了。你有什么想法吗

我试了所有的方法

查看etl文件也没有给我任何信息

这是我第一次尝试在我的机器上安装它

--更新--

我打开了dmp文件,发现:

Loading Dump File [C:\Users\xxx\AppData\Local\CrashDumps\Microsoft.Azure.Cosmos.StartupEntryPoint.exe(1).12596.dmp]
User Mini Dump File: Only registers, stack and portions of memory are available

Symbol search path is: srv*
Executable search path is: 
Windows 10 Version 18363 MP (12 procs) Free x64
Product: WinNt, suite: SingleUserTS
18362.1.amd64fre.19h1_release.190318-1202
Machine Name:
Debug session time: Mon Jan 20 09:35:26.000 2020 (UTC + 1:00)
System Uptime: not available
Process Uptime: 0 days 0:00:02.000
................................................................
..................................
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(3134.41b0): Unknown exception - code c000000d (first/second chance not available)
For analysis of this file, run !analyze -v
ntdll!NtWaitForMultipleObjects+0x14:
00007ff9`562fcc14 c3              ret
0:000> .ecxr
rax=0000000000000000 rbx=0000000000000000 rcx=0000003629dfd270
rdx=00000000e6bc7d4e rsi=0000000000000000 rdi=0000000000000000
rip=000000006748b0ec rsp=0000003629dfd190 rbp=0000000000000000
 r8=000001ba53134730  r9=0000000000000000 r10=0000000000000026
r11=000001ba6d7662e0 r12=0000000000000004 r13=000001ba6d7974d0
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei pl zr na po nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
msvcr80!_invalid_parameter+0x6c:
00000000`6748b0ec 488d4c2440      lea     rcx,[rsp+40h]

我的msvcr80版本似乎有问题,这可能是由于您机器上的性能计数器损坏造成的

要修复性能计数器,请尝试以下操作

  • 以管理员身份打开cmd
  • 运行“lodctr/R”(必须使用大写字母R)
如果这不起作用,请参阅此处显示重置计数器的其他选项的链接。旧文章,但在Windows 10上的效果相同

顺便说一句,这里还有一个选项,就是在Docker容器中运行模拟器。你在问题中引用的那篇文章中的文档


希望这有帮助。

终于让它工作了

通过使用WinDbg并打开dmp文件%LOCALAPPDATA%\CrashDumps,我发现名为perf MSSQL$SQLEXPRESS-sqlctr10.1.2531.0.dll的dll是根本原因。
通过在%WINDIR%\System32中删除此项,错误已“修复”,我现在可以运行模拟器了。

对于我来说,此令人困惑的错误消息只是意味着我需要使用另一个端口。
!或者用默认的8081解决问题(阅读下面的更新2)

以下是错误的文本,便于搜索:

错误:多次尝试重新启动Azure Cosmos Emulator之一 检测到进程。模拟器将关闭。如果问题 请尝试卸载Azure Cosmos Emulator,删除 从%%LOCALAPPDATA%%下载CosmosDBEmulator目录并重新安装。 您还可以使用“反馈”联系Azure Cosmos团队 “数据资源管理器”浏览器窗口中的链接

细节: 在我的例子中,这是在2004年Windows10更新之后发生的。我发誓每次功能更新都会导致Cosmos DB emulator出现故障

对我来说,没有崩溃转储,重建性能计数器也没有帮助。在System的事件查看器中,我注意到了很多错误:

无法绑定到127.0.0.1:8081的基础传输。IP仅侦听列表可能包含对此计算机上可能不存在的接口的引用。数据字段包含错误号。

没有解决这个错误的方法,所以我首先使用
netstat-ao
查看是否有程序已经在8081上监听。没有

然后我使用了来自www的“端口侦听器”实用程序,结果它也不能侦听8081,即使在管理员权限下也不行

由于我根本无法解决这个8081问题&关闭Windows防火墙没有任何帮助,我只是在另一个端口启动了Cosmos DB emulator,它工作了

C:\ProgramFiles\Azure Cosmos DB Emulator>Microsoft.Azure.Cosmos.Emulator.exe/Port=18001

如果您已将cosmos db配置为在系统启动时自动启动,请确保也更新该脚本

在我的例子中,这个cmdline让我进入了数据资源管理器,但它实际上不起作用。其中的“探索者”部分是无限地“获取报价”。我必须再次卸载Cosmos DB emulator,清理此文件夹:
%LOCALAPPDATA%\CosmosDBEmulator
,重新启动,重新安装,不从8081开始,只从新端口开始

Cosmos DB开发人员,你们是很棒的人,但这太麻烦了。如果你不能使用这个端口,那就直说吧,你不必太神秘

更新: 这是可行的,但我忘了更新启动脚本以使用新端口,并注意到在再次重新启动后,cosmos db在8081上启动时没有出现问题。什么??!但这不仅仅是一次旧的重启——我以前已经做过几次了,但都没有用。这次重新启动可能很特别,因为它是在Windows发现了一个更新(kb4576478)之后出现的,可能是意识到现在需要它,因为我已经安装了版本2004,并且重新启动(或者特别是kb4576478更新)修复了8081问题,不管它是什么。哎呀

更新2
另一个工具出现另一个与端口相关的问题。啊。找到此解决方案(请参阅“常规解决方案”)此页面的公认答案还提到了多次重新启动的魔力。

感谢您的回答。可悲的是,这没有帮助。曾考虑在docker中运行它,但如果能让它正常工作,那就太好了。:)这对我有效,但我需要运行两次命令:/