4

有一段时间我的 Azure Compute Emulator 将无法启动。当我尝试时,我收到以下错误:

Cannot create a file when that file already exists. (Exception from HRESULT: 0x800700B7)

如果我点击显示详细信息,我会收到以下消息:

System.Runtime.InteropServices.COMException (0x800700B7): Cannot create a file when that file already exists. (Exception from HRESULT: 0x800700B7)
   at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
   at Microsoft.WindowsAzure.GuestAgent.EmulatorRuntime.EmulatorRuntimeImpl.Initialize(String runtimeConfigIniFile, String serviceName, String rootPath, String logFilePath)
   at Microsoft.ServiceHosting.Tools.DevelopmentFabric.Fabricator.InitializeEmulatorRuntime()
   at Microsoft.ServiceHosting.Tools.DevelopmentFabric.Fabricator.InitializeRuntimeAgents()
   at Microsoft.ServiceHosting.Tools.DevelopmentFabric.Fabricator.Initialize()
   at Microsoft.ServiceHosting.Tools.DevelopmentFabric.Program.Main(String[] args)

我很茫然,我已经完全卸载了 Azure SDK(当前版本和所有以前的版本),然后只重新安装了最新的(2.8)。我已关闭 IIS 功能,然后重新打开。我已经删除/清理了 dftmp 文件。我试过修复 SQL Management Studio 2014 R1 和 Visual Studio 2015。我不知道它在说什么端口文件。我已经重启了我的电脑几百次。尝试启动计算模拟器时,Microsoft Azure 计算模拟器服务进程将启动并与 DFService.exe 和 dfMonitor.exe 一起继续运行。想法已经用完了。有人知道怎么修这个东西吗?或者它指的是什么文件,所以它可以被删除?顺便说一句,存储模拟器启动得很好。

附加信息:

Windows Azure 命令提示符

csrun /devfabric:shutdown 

"The compute emulator is not running." 

但是,它不会结束进程并保持文件处于活动状态,因此干净将无法删除 EmulatorRuntime.log 或 DFService.log。如果我在任务管理器中结束进程然后运行 ​​clean 它实际上是干净的。

csrun /devfabric:start

"Starting the compute emulator..." 

然后什么也没有发生。它非常令人兴奋。

sqllocaldb stop MSSQLLocalDB

"LocalDB instance 'MSSQLLocalDB' stopped." 

sqllocaldb delete MSSQLLocalDB

"LocalDB instance 'MSSQLLocalDB' deleted." 

此时我也删除了 %UserProfile%/AzureStorageEmulatorDb42.mdf 和 .ldf

sqllocaldb delete MSSQLLocalDB

"LocalDB instance 'MSSQLLocalDB' started."

此时它不再包含数据库 AzureStorageEmulatorDb42,而是返回所有表为空,除了具有一行 devstorageaccount1 的 Account。

模拟器运行时.log

[00015280:00006600, 2016/03/18, 21:57:59.949, INFO ] Initializing agent runtime. isDesktop: TRUE allowMultipleRoles:TRUE rootPath: C:\Users\tyangell\AppData\Local\dftmp\
[00015280:00006600, 2016/03/18, 21:57:59.949, INFO ] Agent: Starting.
[00015280:00006600, 2016/03/18, 21:57:59.949, INFO ] Agent: Initialized.
[00015280:00006600, 2016/03/18, 21:57:59.949, INFO ] Machine Configuration:
[00015280:00006600, 2016/03/18, 21:57:59.964, INFO ] Agent flags value = 0x980
[00015280:00006600, 2016/03/18, 21:57:59.997, INFO ] Deleting sublayer 7ad92418-6582-4371-96f1-703ce4f99418
[00015280:00006600, 2016/03/18, 21:57:59.998, INFO ] Agent: Initializing disks.
[00015280:00020148, 2016/03/18, 21:57:59.999, INFO ] ACLing root folder C:\Users\tyangell\AppData\Local\dftmp\
[00015280:00020148, 2016/03/18, 21:58:00.001, INFO ] Finished ACLing root folder C:\Users\tyangell\AppData\Local\dftmp\
[00015280:00006600, 2016/03/18, 21:58:00.001, INFO ] Root folder ACL thread finished executing.
[00015280:00006600, 2016/03/18, 21:58:00.001, INFO ] Agent: Disks initialized.
[00015280:00006600, 2016/03/18, 21:58:00.001, INFO ] Agent: Initializing runtime.
[00015280:00006600, 2016/03/18, 21:58:00.001, INFO ] Setting all Sids to Built-in administrators...
[00015280:00006600, 2016/03/18, 21:58:00.001, INFO ] Initializing Runtime Http Monitor...   
[00015280:00006600, 2016/03/18, 21:58:00.001, INFO ] Finished initializing Runtime Http Monitor.

[00015280:00006600, 2016/03/18, 21:58:00.001, WARN ] Container 00000000-0000-0000-0000-000000000000 not found.
[00015280:00019052, 2016/03/18, 21:58:00.001, INFO ] >>>>_Context_Start: {17477CD7-A015-46C5-8EA6-0F8CD34F5796}     Context={{ RuntimeHttpMonitor }}
[00015280:00006600, 2016/03/18, 21:58:00.001, WARN ] <- RuntimeFindContainer=0x80070490
[00015280:00006600, 2016/03/18, 21:58:00.001, INFO ] Agent: Runtime initialized.
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] Agent: Started.
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] >>>>_Context_Start: {032EB212-30FC-469C-9CE7-6792CCB409E5}     Context={{ AgentCreateContainer:    ContainerId=EmulatorContainer}
[00015280:00006600, 2016/03/18, 21:58:00.180, WARN ] <- AgentMonitoringObject::EventStart(0x00007FFA1197E5A0) =0x80070015       Context={{ AgentCreateContainer:    ContainerId=EmulatorContainer}
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] >>>>_Context_Start: {AB8AB0D3-A170-4223-9B31-3562305D67AA}     Context={{ AgentpCreateContainerWorker:     Id=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] >>>
AgentCreateContainerWorker() called with
    Id=EmulatorContainer
        Context={{ AgentpCreateContainerWorker:     Id=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] Creating a container of type 1     Context={{ AgentpCreateContainerWorker:     Id=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, WARN ] Container EmulatorContainer not found.     Context={{ AgentpCreateContainerWorker:     Id=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, WARN ] <- RuntimeFindContainer=0x80070490     Context={{ AgentpCreateContainerWorker:     Id=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, WARN ] <- AgentMonitoringObject::EventStart(0x00007FFA1197E5A0) =0x80070015       Context={{ AgentpCreateContainerWorker:     Id=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] AgentpCreateContainerWorker Returning
    00000000.
<<<     Context={{ AgentpCreateContainerWorker:     Id=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] <<<<_Context_Ends: {AB8AB0D3-A170-4223-9B31-3562305D67AA}  Return value = 00000000.        Context={{ AgentpCreateContainerWorker:     Id=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, WARN ] <- AgentMonitoringObject::EventEnd(0x00007FFA1197E5A0) =0x80070015
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] <<<<_Context_Ends: {4BE85F52-DC49-4359-AD52-AD97661E9109}  Return value = 00000000. 
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] >>>>_Context_Start: {BDC4EA59-A0B2-454F-9B28-187515E8E947}     Context={{ StartContainer:  ContainerId=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, WARN ] <- AgentMonitoringObject::EventStart(0x00007FFA1197E5A0) =0x80070015       Context={{ StartContainer:  ContainerId=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] >>>>_Context_Start: {8ED05D2B-1F69-4A43-9449-BAA47C9DFEAE}     Context={{ AgentpStartContainerWorker:  Id=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, WARN ] <- AgentMonitoringObject::EventStart(0x00007FFA1197E5A0) =0x80070015       Context={{ AgentpStartContainerWorker:  Id=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] <<<<_Context_Ends: {8ED05D2B-1F69-4A43-9449-BAA47C9DFEAE}  Return value = 00000000.        Context={{ AgentpStartContainerWorker:  Id=EmulatorContainer }}
[00015280:00006600, 2016/03/18, 21:58:00.180, WARN ] <- AgentMonitoringObject::EventEnd(0x00007FFA1197E5A0) =0x80070015
[00015280:00006600, 2016/03/18, 21:58:00.180, INFO ] <<<<_Context_Ends: {4BE85F52-DC49-4359-AD52-AD97661E9109}  Return value = 00000000. 

DFService.log

Started: "C:\Program Files\Microsoft SDKs\Azure\Emulator\devfabric\DFService.exe" -sp "C:\Users\tyangell\AppData\Local\dftmp" -enableIIS -singleInstance -elevated
4

3 回答 3

1

经过将近一整年的时间搜索博客文章,找到了解决方案!! https://blogs.msdn.microsoft.com/cie/2016/05/17/azure-emulator-crash-with-error-0x800700b7-cannot-create-a-file-when-that-file-already-exists

由于博客文章链接有变化的趋势,我将在此重申:


首先,我建议您查看下一个很棒的支持博客:

https://blogs.technet.microsoft.com/supportingwindows/2014/08/11/wmi-missing-or-failing-wmi-providers-or-invalid-wmi-class

然后,在您检查了博客文章之后,您需要按照以下步骤检查哪个是丢失或失败的 WMI 类:

  1. 转到开始运行并输入 wmimgmt.msc
  2. 右键单击本地 WMI 控件(本地)并选择属性。
  3. 在常规选项卡上,如果该框上注明了任何故障,则表明存在核心 WMI 问题。
  4. 找到 Win32_Processor 命名空间/类的 .MOF 文件

对于这种情况,我看到有一些 WMI 无效类:

  • Win32_处理器
  • Win32_WMISetting

出现错误的 WMI 控件(本地)属性

  1. 通过运行 mofcomp.exe 修复 MOF 文件。mofcomp.exe 位于 C:\Windows\System32\wbem 文件夹中。
    C:\Windows\System32\wbem>mofcomp.exe CimWin32.mof

  2. 然后通过运行命令 regsvr32 重新注册关联的 DLL
    C:\Windows\System32\wbem>regsvr32 cimwin32.dll

修复问题

  1. 通过再次检查 WMI 控件 (wmimgmt.msc) 来验证它是否已修复。这一次,如下图所示,不再有 WMI 类错误。

WMI 控件(本地)属性已修复

  1. 然后,重新启动模拟器,这一次您将看到模拟器再次运行,这次没有问题/崩溃。

归功于微软的 Julio Co。

于 2016-07-22T18:33:11.643 回答
0

对于遇到此问题的人(使用最新版本的 VS 2017 15.6)并且不要对 WMI 有任何问题,如此处所述,您并不孤单:(

似乎错误已经适应,现在是由其他原因引起的。

于 2018-03-07T14:21:15.450 回答
0

在最近一次 Windows 更新后,我在尝试运行之前运行没有错误的应用程序时开始看到此错误。

通过尝试通过 Azure SDK Shell(又名“Microsoft Azure 命令提示符”)以管理员身份启动计算模拟器,csrun /devfabric /usefullemulator然后使用命令提示我是否要允许计算模拟器通过 Windows 防火墙进行通信。启用此功能后,我可以再次像往常一样使用 VS(2017),没有错误。

于 2018-11-22T10:42:59.190 回答