Aspire トラブルシューティング ガイド
Aspire の導入で問題が発生していますか? このページでは、開発者がよく遭遇する代表的な問題の解決策を紹介します。
Docker Desktop が起動していない
Section titled “Docker Desktop が起動していない”症状: aspire run が停止したままになる、または「container runtime を待機中」のメッセージが表示されます。
解決策: aspire run を実行する前に Docker Desktop (または Podman) を起動してください。システムトレイで Docker が緑色のステータス表示で動作していることを確認します。
ポートが既に使用中
Section titled “ポートが既に使用中”症状: 「Address already in use」や「Port 5000 is already bound.」のようなエラー メッセージが表示されます。
解決策:
- 同じポートを使用しているほかのアプリケーションを停止する
- 別の Aspire アプリが動作中の場合は、まず
⌃+C ⌃+C Control + C CtrlC Control + C CtrlC で停止する
ポートを使用しているプロセスを特定する方法
Section titled “ポートを使用しているプロセスを特定する方法”lsof -i :5000# 次にプロセスを終了:kill -9 <pid>netstat -ano | findstr :5000# 最後の列で PID を確認してから:taskkill /PID <pid> /Fダッシュボードでサービスが “Unhealthy” と表示される
Section titled “ダッシュボードでサービスが “Unhealthy” と表示される”症状: Aspire ダッシュボードでサービスが赤い状態、または「Unhealthy」と表示されます。
解決策:
- ダッシュボードでサービス名をクリックし、ログを確認する
- 起動時エラーや例外を探す
- 正常性 チェック エンドポイントが存在することを確認する (例:
/healthが 200 OK を返す) - すべての依存関係が正常に起動したことを確認する
”Connection refused” エラー
Section titled “”Connection refused” エラー”症状: フロントエンドが API に接続できず、connection refused エラーが表示されます。
解決策: AppHost で WaitFor() を使用していることを確認してください:
builder.AddProject<Projects.WebFrontend>("frontend") .WithReference(apiService) .WaitFor(apiService); // この行を追加!環境変数が利用できない
Section titled “環境変数が利用できない”症状: サービスで、注入されるはずの接続文字列や構成を見つけられません。
解決策: リソース接続に WithReference() を使用していることを確認してください。
例: サービスにデータベースを接続する
Section titled “例: サービスにデータベースを接続する”AppHost 側:
var db = builder.AddPostgres("db");var api = builder.AddProject<Projects.Api>("api") .WithReference(db); // これにより接続文字列が注入されますサービス コード側では、構成から接続文字列を取得します:
var connectionString = builder.Configuration.GetConnectionString("db");接続文字列は ConnectionStrings__db という名前の環境変数として注入されます。
コンテナー イメージの pull 失敗
Section titled “コンテナー イメージの pull 失敗”症状: コンテナー イメージの pull 失敗、または「image not found」エラーが表示されます。
解決策:
- インターネット接続を確認する
- Docker Hub または使用中のコンテナー レジストリにアクセスできることを確認する
- 企業ネットワークを使用している場合は、Docker Desktop のプロキシ設定を確認する
イメージを手動で pull して確認する方法
Section titled “イメージを手動で pull して確認する方法”# まずイメージを手動で pull して確認docker pull redis:latest
# プロキシ環境の場合は Docker Desktop を設定:# 設定 > リソース > プロキシ > 手動プロキシ構成ダッシュボードが読み込まれない
Section titled “ダッシュボードが読み込まれない”症状: Aspire ダッシュボードの URL に応答がない、または空白ページが表示されます。
解決策:
- コンソール出力で正しいダッシュボード URL を確認する (別ポートが使われる場合があります)
- ブラウザー拡張機能がページをブロックしていないことを確認する
- 別のブラウザーまたはシークレット モードで試す
- ウイルス対策ソフトやファイアウォールが接続をブロックしていないか確認する
サービス検出が機能しない
Section titled “サービス検出が機能しない”症状: サービス同士が名前で見つけられません (例: http://apiservice が解決されない)。
解決策: AppHost で定義したサービス名を、完全に同じ文字列で使用していることを確認してください。
例: 正しいサービス検出の設定
Section titled “例: 正しいサービス検出の設定”// AppHost 側var api = builder.AddProject<Projects.Api>("apiservice"); // 名前は "apiservice"// 利用側サービスではこの名前を正確に使用var client = new HttpClient { BaseAddress = new Uri("http://apiservice") };次の点も確認してください:
- 両方のサービスで
AddServiceDefaults()が呼び出されている - 利用側サービスに AppHost で
.WithReference(api)が設定されている
Aspire のサービス検出の仕組みをより深く理解するには、 サービス検出を参照してください。
TypeScript AppHost の問題
Section titled “TypeScript AppHost の問題””Command not found” エラー
Section titled “”Command not found” エラー”Node.js がインストールされ、PATH で利用可能であることを確認してください:
node --versionnpm --versionSDK コンパイル エラー
Section titled “SDK コンパイル エラー”生成された .aspire/modules/ SDK でコンパイル エラーが発生する場合:
- Aspire CLI の最新バージョンがインストールされていることを確認します。
.aspire/modulesディレクトリを削除し、aspire runを再実行して SDK を再生成します。- 既知の問題は Aspire GitHub issues を確認します。
デバッグ モード
Section titled “デバッグ モード”問題を診断するには、デバッグ出力で実行します:
aspire run --log-level DebugCLI ログ
Section titled “CLI ログ”Aspire CLI のログは次に保存されます:
$HOME/.aspire/cli/logs/$HOME\.aspire\cli\logs\