開発用ストレージ エミュレーターを起動すると、エラーが発生します
The process cannot access the file because it is being used by another process
これはBLOBでのみ発生していると思います。他のサービス、つまりキューとテーブルが正常に開始されます
何が問題なのですか?Azure SDK v1.4 を使用しています
開発用ストレージ エミュレーターを起動すると、エラーが発生します
The process cannot access the file because it is being used by another process
これはBLOBでのみ発生していると思います。他のサービス、つまりキューとテーブルが正常に開始されます
何が問題なのですか?Azure SDK v1.4 を使用しています
BitTorrent を停止します。私の経験では、このエラーは通常ポートの競合であり、BitTorrent は通常、ポート 10000 を取得します。BitTorrent でない場合は、ポート 10000 を保持している可能性のある他のアプリを探してください。Netstat が役立つ可能性があります。
これは、Azure 開発ストレージが使用しているポートを使用する別のプロセスである可能性があります。
どのアプリがそれであるかを把握するには、netstat
最初に実行します。
netstat -p tcp -ano | findstr :10000
最後の列にプロセス ID (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
エミュレータ v4+の場合、パスは次のとおりです。%ProgramFiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe.config
ただし、接続文字列で使用できなくなるため、注意UseDevelopmentStorage=true
してください (たとえば、Azure Storage Explorer に接続します)。
DsInit
役に立たない接続するには、定義した新しいエンドポイント ポートを対象とするカスタム接続文字列を使用します。標準のよく知られたストレージ エミュレーターのアカウント名とキーを使用して接続する必要があります。接続文字列の例は、ここにあります。
私は同じ問題を抱えていましたが、私の場合、問題は別の場所にありました。ポート 10,000 でリッスンしているプロセスSystem (PID 4)があったため、そのようなプロセスを強制終了できなかったことは明らかです。唯一の回避策は、Windows (Windows 7 64 ビット) を再起動することでしたが、これは極端すぎて時間がかかります。
最も困難な部分は、システムプロセスがそのポートでリッスンしている理由を特定することでした。この場合、Google はまったく役に立ちませんでした。
そこで、 Netcat (より良い Telnet)を使用してlocalhostのポート 10,000 に接続し、そこに何かを送信しようとしました:
$ nc 127.0.0.1 10000
応答から、ポート 10,000 でリッスンしている HTTP サーバーがあることにすぐに気付きました。応答で最も重要な情報は、次のヘッダーでした。
Server: Microsoft-HTTPAPI/2.0
その後、このポートを Azure Emulator 用に解放するのは非常に高速でした。簡単なグーグル検索により、このことが実際に 何をしているのかについての詳細が明らかになりました: HTTP Server API、そして最も重要なのは、それが誰をしているのか: Windows HTTP Servicesです。
次に、Services Management Consoleに移動し、実行中のService WinHTTP WPADというサービスを見つけ、単純に停止しました。そしてほら、ポート10,000は鳥のように自由になりました。
誰がそれがどのように機能するか知っていますか? いくつかの 3 番目のアプリケーションが、 WinHTTP WPADサービスを使用して、ポート 10,000 でリッスンする HTTP サーバーを作成していると思います。Microsoft が既に使用しているポートを使用するように Azure Emulator を構成しないため、Microsoft からのものであるとは思えません。
私の場合、システムにビット Torrent はありませんでした。ただし、ポート 1000 は一部の java.exe によって使用されていました。HDInsight をローカルで実行しても、Azure Blob Storage では機能しないことがわかりました。そこで、Azure Storage Emulator UI に移動し、BLOB のチェックを外しました。その後、この問題は解決しました。