4
votes

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
3

3 Answers

1
votes

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:

  • Win32_Processor
  • Win32_WMISetting

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.

0
votes

For those who are getting this problem (with latest version of VS 2017 15.6) and DONT have any issues with WMI as described here, you are not alone :(

It seems the error has adapted and now is caused by something else.

0
votes

After a recent windows update I started to see this error when trying to run an application that had previously run without error.

By trying to start the compute emulator via the Azure SDK Shell (aka "Microsoft Azure Command Prompt"), as admin, using the command csrun /devfabric /usefullemulator I was then prompted whether I wanted to allow the compute emulator to communicate through the windows firewall. After enabling this I was then able to use VS(2017) as usual again, without error.