служба хранения больших двоичных объектов Windows Azure не запускается - PullRequest
19 голосов
/ 20 июня 2011

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

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

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

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

Development Storage Emulator start error

Ответы [ 4 ]

27 голосов
/ 20 июня 2011

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

15 голосов
/ 04 января 2012

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

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

netstat -p tcp -ano | findstr :10000

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

  TCP    0.0.0.0:10000          0.0.0.0:0              LISTENING       2204

Это означает, что процесс, прослушивающий этот порт, имеет идентификатор 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

Для Эмулятор v4 + Путь %ProgramFiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe.config

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

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

1 голос
/ 01 сентября 2015

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

Самым сложным было выяснить, почему процесс System прослушивает этот порт. Google в этом случае не помог.

Поэтому я просто попытался подключиться к порту 10000 на localhost , используя Netcat (лучше Telnet) и отправить туда что-то:

$ nc 127.0.0.1 10000

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

Server: Microsoft-HTTPAPI/2.0

Тогда было очень быстро освободить этот порт для эмулятора Azure. Краткий поиск в Google показал подробности о , что на самом деле делает эта вещь: 1022: HTTP-сервер API , и самое главное , кто делает это: Службы Windows HTTP .

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


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

0 голосов
/ 01 ноября 2013

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

...