Azure 计算模拟器无法启动

标签 azure visual-studio-2015 azure-compute-emulator

有一段时间我的 Azure 计算模拟器无法启动。当我尝试时,我收到以下错误:

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." 

但是,它不会结束进程并保持文件处于事件状态,因此 clean 无法删除 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 外,所有表均为空。

EmulatorRuntime.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

最佳答案

经过近一整年的博客文章搜索,找到了解决方案! 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_Processor
  • Win32_WMI设置

WMI Control (Local) Properties with Error

  • 通过运行 mofcomp.exe 修复 MOF 文件。 mofcomp.exe 是存放在目录 C:\Windows\System32\wbem。
    C:\Windows\System32\wbem>mofcomp.exe CimWin32.mof

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

  • Fix Issue

  • 再次检查 WMI 控制 (wmimgmt.msc) 来验证问题是否已修复。这次,如下图所示,不再出现 WMI 类错误。
  • WMI Control (Local) Properties Fixed

  • 然后,重新启动模拟器,这次您将看到模拟器再次运行,这次没有出现任何问题/崩溃。
  • <小时/>

    感谢 Microsoft 的 Julio Co。

    关于Azure 计算模拟器无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36095771/

    相关文章:

    visual-studio-2015 - 无法将自动化测试与测试用例相关联

    linux - 我可以在 Visual Studio 2015 或 Mac(Eclipse 或 XCode)上开发基于 Linux 的 Raspberry Pi 应用程序吗?

    azure - 无法将 Web 应用程序移至新资源组

    .net - 如何获取Azure环境名称

    windows - 如何在 Windows Azure 中运行 F# 应用程序?

    windows - 在计算模拟器下启动 Azure Web 角色时出现 "No endpoint listening"

    hadoop - 基于Azure的Hadoop群集(HDInsight)如何转换为经典的本地Hadoop群集

    php - Windows Azure 上的自定义 PHP 扩展

    git - VS15 1803更新后无法识别git克隆的文件

    c# - 在开发中使用 Azure Redis 缓存(预览版)