azurevisual-studio-2015azure-compute-emulator

Azure Compute Emulator Wont Start


For a while now my Azure Compute Emulator will not start. When I try, I receive the following error:

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

If I hit show detail I get the below message:

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)

I am at a loss, I have completely uninstalled the Azure SDK (current version and all previous versions) then reinstalled only the latest (2.8). I have turned off the IIS features, and back on again. I've deleted/cleaned the dftmp file. I've tried repairing SQL Management Studio 2014 R1 and Visual Studio 2015. I have no idea what file of port it is talking about. I've restarted my computer a few hundred times. When attemting starting the compute emulator the Microsoft Azure Compute Emulator Service process starts and remains running along with DFService.exe and dfMonitor.exe. Ideas have run out. Anyone know how to fix this? Or what file its referring to so it can be deleted? By the way, the storage emulator starts just fine.

Additional info:

Windows Azure Command Prompt

csrun /devfabric:shutdown 

"The compute emulator is not running." 

However it doesn't end the processes and keeps the files active so clean wont be able to delete the EmulatorRuntime.log or the DFService.log. If I go end the processes in Task Manager then run clean it does in-fact clean.

csrun /devfabric:start

"Starting the compute emulator..." 

Then nothing happens. Its pretty exciting.

sqllocaldb stop MSSQLLocalDB

"LocalDB instance 'MSSQLLocalDB' stopped." 

sqllocaldb delete MSSQLLocalDB

"LocalDB instance 'MSSQLLocalDB' deleted." 

At this point I also deleted %UserProfile%/AzureStorageEmulatorDb42.mdf and .ldf

sqllocaldb delete MSSQLLocalDB

"LocalDB instance 'MSSQLLocalDB' started."

At this point it no longer contains the database AzureStorageEmulatorDb42, but returns with all tables empty except Account which has one row devstorageaccount1.

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

Solution

  • After almost a full year of searching a blog post with the solution has been found!! https://blogs.msdn.microsoft.com/cie/2016/05/17/azure-emulator-crash-with-error-0x800700b7-cannot-create-a-file-when-that-file-already-exists

    Since blog posts links have a tendency to change I will reiterate here:


    First, I suggest you to check the next great support blog:

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

    Then after you have checked the blog post, you need to check which one is the missing or failing WMI class, by following the next steps:

    1. Go to start-run and type in wmimgmt.msc
    2. Right click on Local WMI Control (Local) and select properties.
    3. On the general tab, if there are any failures noted on that box, that indicates a core WMI issue.
    4. Found the .MOF files for Win32_Processor namespace/class

    For this case, I saw that there were some WMI invalid classes:

    WMI Control (Local) Properties with Error

    1. Repair the MOF file by running mofcomp.exe . The mofcomp.exe is located in the C:\Windows\System32\wbem folder.
      C:\Windows\System32\wbem>mofcomp.exe CimWin32.mof

    2. And then re-register the associated DLL by running the command regsvr32
      C:\Windows\System32\wbem>regsvr32 cimwin32.dll

    Fix Issue

    1. Verify if it is fixed or not by checking the WMI Control (wmimgmt.msc) again. This time, as you can see in the image below, there are no more WMI class errors.

    WMI Control (Local) Properties Fixed

    1. Then, re-launch the Emulator, and this time you will see the emulator to run again, with no issues/crash this time.

    Credit to Julio Co from Microsoft.