Подтвердить что ты не робот

Windows azure development storage blob service не запускается

Когда я запускаю эмулятор хранилища разработки, я получаю сообщение об ошибке

The process cannot access the file because it is being used by another process

Я предполагаю, что это происходит только для BLOB, другие службы, т.е. очередь и таблицы запускаются успешно

В чем может быть проблема? Я использую Azure SDK v1.4

Development Storage Emulator start error

4b9b3361

Ответ 1

Остановить BitTorrent. По моему опыту, эта ошибка обычно является конфликтом портов, а BitTorrent обычно захватывает порт 10000. Если это не BitTorrent, ищите другие приложения, которые могут держаться на порт 10000. Netstat, вероятно, может помочь.

Ответ 2

Это может быть другой процесс с использованием порта, используемого хранилищем Azure dev.

Чтобы выяснить, какое приложение это, выполните сначала netstat:

netstat -p tcp -ano | findstr :10000

В последнем столбце вы получите идентификатор процесса (PID):

  TCP    0.0.0.0:10000          0.0.0.0:0              LISTENING       2204

Это означает, что процесс, прослушивающий этот порт, равен ID 2204. Затем запустите taklist:

tasklist /fi "pid eq 2204"

Итак, вы увидите что-то вроде этого:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
SMSvcHost.exe                 2204 Services                   0     29 300 K

Итак, теперь вы знаете, что SMSvcHost.exe прослушивает этот порт.

Если вы не можете остановить процесс с помощью порта, есть способ переназначить порты, используемые DevFabric. Решение взято из этого сообщения в блоге:

Вы можете сделать это, перейдя на C:\Program Files\Windows Azure SDK\v1.4\bin\devstore (замените 1.4 версией SDK) и откройте DSService.exe.config. Оттуда вы можете изменить конфигурацию и заставить ваши службы слушать другие порты.

Для меня в v1.6 путь был C:\Program Files\Windows Azure Emulator\emulator\devstore\DSService.exe.config

Для SDK v2.5/Storage v3.4 путь %ProgramFiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\WAStorageEmulator.exe.config

Для Emulator v4 + путь %ProgramFiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe.config

Но будьте осторожны, потому что вы больше не сможете использовать UseDevelopmentStorage=true в своей строке подключения (например, подключиться к Azure Storage Explorer).

  • DsInit не помогает
  • Указание строки подключения таким образом fooobar.com/questions/270635/... также не помогает.

Чтобы подключиться, используйте настраиваемую строку подключения, которая предназначена для новых портов конечной точки, которые вы определили. Вы по-прежнему хотите подключиться с помощью стандартного значка известного имени и ключа учетной записи эмулятора хранилища. Пример строки подключения может быть найден здесь.

Ответ 3

У меня была такая же проблема, но в моем случае проблема была где-то еще. Была система Process (PID 4), прослушивающая порт 10 000, поэтому очевидно, что я не смог убить такой процесс. Единственным обходным решением было перезагрузить Windows (64-разрядная версия Windows 7), но это слишком экстремально и трудоемко.

Наиболее сложной задачей было определить, почему системный процесс прослушивает этот порт. В этом случае Google не помог.

Поэтому я просто попытался подключиться к порту 10 000 на локальном хостинге с помощью Netcat (лучше Telnet) и отправить туда что-то:

$ nc 127.0.0.1 10000

Я быстро заметил из ответа, что HTTP-сервер прослушивает порт 10 000. Наиболее важной информацией в ответе был этот заголовок:

Server: Microsoft-HTTPAPI/2.0

Тогда было действительно быстро освободить этот порт для Azure Emulator. Краткая информация о том, что это на самом деле делает: HTTP Server API, и самое главное, кто это делает: Windows HTTP Services.

Затем я перешел в консоль управления службами, нашел службу под названием Service WinHTTP WPAD, которая была запущена, и просто остановила ее. И вуаля, порт 10 000 теперь свободен как птица.


Кто-нибудь знает, как это работает? Я предполагаю, что какое-то третье приложение создает HTTP-сервер прослушивания на порту 10000, используя службу WPAD WinHTTP. Я сомневаюсь, что это ничего от Microsoft, поскольку они не будут настраивать Azure Emulator на использование уже используемого ими порта.

Ответ 4

В моем случае в моей системе не было бит Torrent. Однако порт 1000 использовался некоторым java.exe. Я понял, что запуск HDInsight локально не работает с хранилищем памяти Azure. Поэтому я отправился в интерфейс Azure Storage Emulater и снял флажок. После этого этот вопрос был разрешен.