Conversation
Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
|
@copilot While you are at it, add the ASPIRE_DASHBOARD_MCP_ENDPOINT_URL to all of the playground samples as well and make sure it's a unique port. |
…cts with unique ports Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
Added Commit: 7dc4ba8 |
|
@copilot Make sure we have a generate-manifest launch profile for all playground samples |
Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
Added Commit: 483fb29 |
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20091" | ||
| } | ||
| }, | ||
| "generate-manifest": { |
There was a problem hiding this comment.
Removed the generate-manifest profile from AspireWithMaui.AppHost as it's a MAUI-specific project that doesn't need manifest generation. Verified the build succeeds.
Commit: 303563b
Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 13155Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 13155" |
There was a problem hiding this comment.
Pull request overview
This PR addresses port conflicts across 52 playground AppHost projects by systematically assigning unique ports across three ranges: primary application URLs (16000-16520), secondary/dashboard endpoints (17000-17430), and MCP endpoints (18000-18105). While the intention is sound, the implementation has several critical issues that prevent the playground apps from running successfully.
Key Changes:
- Updated applicationUrl ports across all 52 AppHost launchSettings.json files
- Added ASPIRE_DASHBOARD_MCP_ENDPOINT_URL to all playground samples
- Added/renamed generate-manifest launch profiles in 51 projects (excluding AspireWithMaui)
Critical Issues Found:
- JSON Syntax Errors: Trailing commas in Pipelines and Deployers AppHost files that will cause parsing failures
- Port Conflicts: Seven projects have applicationUrl using the same port as ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL (17xxx range), creating binding conflicts
- Inconsistent Port Allocation: TestShop uses MCP ports 16036/16033 instead of the documented 18xxx range
Reviewed changes
Copilot reviewed 52 out of 52 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| playground/yarp/Yarp.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/withdockerfile/WithDockerfile.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/webpubsub/WebPubSub.AppHost/Properties/launchSettings.json | |
| playground/waitfor/WaitForSandbox.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/signalr/SignalR.AppHost/Properties/launchSettings.json | |
| playground/seq/Seq.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/python/Python.AppHost/Properties/launchSettings.json | Added MCP endpoint |
| playground/publishers/Publishers.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/pipelines/Pipelines.AppHost/Properties/launchSettings.json | |
| playground/orleans/Orleans.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/nats/Nats.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/mysql/MySqlDb.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/mongo/Mongo.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/milvus/MilvusPlayground.AppHost/Properties/launchSettings.json | Added MCP endpoints |
| playground/keycloak/Keycloak.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/kafka/KafkaBasic.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/deployers/Deployers.AppHost/Properties/launchSettings.json | |
| playground/cdk/CdkSample.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/bicep/BicepSample.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/TestShop/TestShop.AppHost/Properties/launchSettings.json | |
| playground/Stress/Stress.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/SqlServerScript/AppHost1/Properties/launchSettings.json | Added MCP endpoints |
| playground/SqlServerEndToEnd/SqlServerEndToEnd.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/Redis/Redis.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/Qdrant/Qdrant.AppHost/Properties/launchSettings.json | |
| playground/ProxylessEndToEnd/ProxylessEndToEnd.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/PostgresEndToEnd/PostgresEndToEnd.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/ParameterEndToEnd/ParameterEndToEnd.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints; generate-manifest includes unnecessary MCP endpoint |
| playground/OracleEndToEnd/OracleEndToEnd.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/OpenAIEndToEnd/OpenAIEndToEnd.AppHost/Properties/launchSettings.json | |
| playground/HealthChecks/HealthChecksSandbox.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/GitHubModelsEndToEnd/GitHubModelsEndToEnd.AppHost/Properties/launchSettings.json | |
| playground/ExternalServices/ExternalServices.AppHost/Properties/launchSettings.json | Added MCP endpoints |
| playground/DevTunnels/DevTunnels.AppHost/Properties/launchSettings.json | Added MCP endpoints |
| playground/DatabaseMigration/DatabaseMigration.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/CustomResources/CustomResources.AppHost/Properties/launchSettings.json | |
| playground/CosmosEndToEnd/CosmosEndToEnd.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/BrowserTelemetry/BrowserTelemetry.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/AzureStorageEndToEnd/AzureStorageEndToEnd.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/AzureServiceBus/ServiceBus.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/AzureSearchEndToEnd/AzureSearch.AppHost/Properties/launchSettings.json | Added MCP endpoints |
| playground/AzureOpenAIEndToEnd/AzureOpenAIEndToEnd.AppHost/Properties/launchSettings.json | |
| playground/AzureKusto/AzureKusto.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/AzureFunctionsEndToEnd/AzureFunctionsEndToEnd.AppHost/Properties/launchSettings.json | Added MCP endpoints |
| playground/AzureContainerApps/AzureContainerApps.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| playground/AzureAppService/AzureAppService.AppHost/Properties/launchSettings.json | Added MCP endpoints |
| playground/AzureAppConfiguration/AzureAppConfiguration.AppHost/Properties/launchSettings.json | Added MCP endpoints and generate-manifest profile |
| playground/AzureAIFoundryEndToEnd/AzureAIFoundryEndToEnd.AppHost/Properties/launchSettings.json | Added MCP endpoints |
| playground/AspireWithNode/AspireWithNode.AppHost/Properties/launchSettings.json | Added MCP endpoints and renamed manifest → generate-manifest |
| playground/AspireWithMaui/AspireWithMaui.AppHost/Properties/launchSettings.json | Added MCP endpoints (no generate-manifest per design) |
| playground/AspireWithJavaScript/AspireJavaScript.AppHost/Properties/launchSettings.json | Added MCP endpoints and renamed manifest → generate-manifest |
| playground/AspireEventHub/EventHubs.AppHost/Properties/launchSettings.json | Updated ports and added MCP endpoints |
| "commandLineArgs": "--publisher default --deploy true --output-path deploy", | ||
| }, |
There was a problem hiding this comment.
JSON syntax error: Trailing comma after commandLineArgs will cause JSON parsing to fail. Remove the trailing comma on line 32.
There was a problem hiding this comment.
Fixed JSON syntax error in Deployers.AppHost by removing the trailing comma from the deploy profile.
Commit: 7cc18e8
| "applicationUrl": "http://localhost:17240", | ||
| "environmentVariables": { | ||
| "ASPNETCORE_ENVIRONMENT": "Development", | ||
| "DOTNET_ENVIRONMENT": "Development", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16099", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17038", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:17240", | ||
| "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "http://localhost:18093", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17240", |
There was a problem hiding this comment.
Port conflict: The HTTP applicationUrl (17240) conflicts with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL (17240) and ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL (17240) in the http profile. The application and dashboard endpoints cannot both bind to the same port. The applicationUrl should use a unique port from the 16000-16520 range as described in the PR, not the 17xxx range reserved for dashboard endpoints.
There was a problem hiding this comment.
Fixed port conflict in SignalR.AppHost by moving applicationUrl from 17240 to 16470 to avoid conflict with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL. Updated both http and generate-manifest profiles.
Commit: 7cc18e8
| "applicationUrl": "http://localhost:17370", | ||
| "commandLineArgs": "--publisher manifest --output-path aspire-manifest.json", | ||
| "environmentVariables": { | ||
| "ASPNETCORE_ENVIRONMENT": "Development", | ||
| "DOTNET_ENVIRONMENT": "Development", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16099", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:17370", | ||
| "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "http://localhost:18097", | ||
| "ASPIRE_ALLOW_UNSECURED_TRANSPORT": "true" |
There was a problem hiding this comment.
Port conflict: The generate-manifest profile also uses applicationUrl 17370 which conflicts with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL (17370). Additionally, the generate-manifest profile includes ASPIRE_DASHBOARD_MCP_ENDPOINT_URL which is typically not needed for manifest generation.
There was a problem hiding this comment.
Fixed port conflict in WebPubSub.AppHost by moving applicationUrl from 17370 to 16490 in both http and generate-manifest profiles. Also removed unnecessary ASPIRE_DASHBOARD_MCP_ENDPOINT_URL from generate-manifest profile.
Commit: 7cc18e8
| "applicationUrl": "http://localhost:17020", | ||
| "environmentVariables": { | ||
| "ASPNETCORE_ENVIRONMENT": "Development", | ||
| "DOTNET_ENVIRONMENT": "Development", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16195", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17038", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:17020", | ||
| "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "http://localhost:18045", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17020", |
There was a problem hiding this comment.
Port conflict: The HTTP applicationUrl (17020) conflicts with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL (17020) and ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL (17020) in the http profile. The application and dashboard endpoints cannot both bind to the same port. The applicationUrl should use a unique port from the 16000-16520 range as described in the PR, not the 17xxx range reserved for dashboard endpoints.
| "commandLineArgs": "--publisher default --deploy true --output-path ./deploy-output", | ||
| }, |
There was a problem hiding this comment.
JSON syntax error: Trailing comma after commandLineArgs will cause JSON parsing to fail. Remove the trailing comma on line 32.
There was a problem hiding this comment.
Fixed JSON syntax error in Pipelines.AppHost by removing the trailing comma from the deploy profile.
Commit: 7cc18e8
| "applicationUrl": "http://localhost:17370", | ||
| "environmentVariables": { | ||
| "ASPNETCORE_ENVIRONMENT": "Development", | ||
| "DOTNET_ENVIRONMENT": "Development", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16099", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:17370", | ||
| "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "http://localhost:18097", | ||
| "ASPIRE_ALLOW_UNSECURED_TRANSPORT": "true" |
There was a problem hiding this comment.
Port conflict: The HTTP applicationUrl (17370) conflicts with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL (17370). The application and dashboard OTLP endpoint cannot both bind to the same port. The applicationUrl should use a unique port from the 16000-16520 range as described in the PR, not the 17xxx range reserved for dashboard endpoints.
There was a problem hiding this comment.
Fixed port conflict in WebPubSub.AppHost http profile by moving applicationUrl from 17370 to 16490 to avoid conflict with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL.
Commit: 7cc18e8
| "applicationUrl": "http://localhost:17320", | ||
| "environmentVariables": { | ||
| "ASPNETCORE_ENVIRONMENT": "Development", | ||
| "DOTNET_ENVIRONMENT": "Development", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16022", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17039", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:17320", | ||
| "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "http://localhost:18055", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17320", |
There was a problem hiding this comment.
Port conflict: The HTTP applicationUrl (17320) conflicts with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL (17320) and ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL (17320) in the http profile. The application and dashboard endpoints cannot both bind to the same port. The applicationUrl should use a unique port from the 16000-16520 range as described in the PR, not the 17xxx range reserved for dashboard endpoints.
There was a problem hiding this comment.
Fixed port conflict in Qdrant.AppHost by moving applicationUrl from 17320 to 16270 to avoid conflict with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL. Updated both http and generate-manifest profiles.
Commit: 7cc18e8
| "applicationUrl": "http://localhost:17010", | ||
| "environmentVariables": { | ||
| "ASPNETCORE_ENVIRONMENT": "Development", | ||
| "DOTNET_ENVIRONMENT": "Development", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16195", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17038", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:17010", | ||
| "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "http://localhost:18041", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17010", |
There was a problem hiding this comment.
Port conflict: The HTTP applicationUrl (17010) conflicts with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL (17010) and ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL (17010) in the http profile. The application and dashboard endpoints cannot both bind to the same port. The applicationUrl should use a unique port from the 16000-16520 range as described in the PR, not the 17xxx range reserved for dashboard endpoints.
There was a problem hiding this comment.
Fixed port conflict in GitHubModelsEndToEnd.AppHost by moving applicationUrl from 17010 to 16200 to avoid conflict with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL.
Commit: 7cc18e8
| "applicationUrl": "http://localhost:17000", | ||
| "environmentVariables": { | ||
| "ASPNETCORE_ENVIRONMENT": "Development", | ||
| "DOTNET_ENVIRONMENT": "Development", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16195", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17038", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:17000", | ||
| "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "http://localhost:18021", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17000", |
There was a problem hiding this comment.
Port conflict: The HTTP applicationUrl (17000) conflicts with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL (17000) and ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL (17000) in the http profile. The application and dashboard endpoints cannot both bind to the same port. The applicationUrl should use a unique port from the 16000-16520 range as described in the PR, not the 17xxx range reserved for dashboard endpoints.
There was a problem hiding this comment.
Fixed all code review issues including port conflicts. Updated applicationUrl ports from 17xxx range (reserved for dashboard) to 16xxx range for 7 projects: AzureOpenAIEndToEnd (17000→16100), OpenAIEndToEnd (17020→16220), GitHubModelsEndToEnd (17010→16200), CustomResources (17100→16160), SignalR (17240→16470), WebPubSub (17370→16490), and Qdrant (17320→16270). Also removed trailing commas in Pipelines and Deployers, and updated TestShop MCP ports to 18xxx range.
Commit: 7cc18e8
There was a problem hiding this comment.
Fixed port conflict in AzureOpenAIEndToEnd.AppHost by moving applicationUrl from 17000 to 16100 to avoid conflict with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL.
Commit: 7cc18e8
| "applicationUrl": "http://localhost:17100", | ||
| "environmentVariables": { | ||
| "ASPNETCORE_ENVIRONMENT": "Development", | ||
| "DOTNET_ENVIRONMENT": "Development", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16175", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17038", | ||
| "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:17100", | ||
| "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "http://localhost:18033", | ||
| "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17100", |
There was a problem hiding this comment.
Port conflict: The HTTP applicationUrl (17100) conflicts with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL (17100) and ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL (17100) in the http profile. The application and dashboard endpoints cannot both bind to the same port. The applicationUrl should use a unique port from the 16000-16520 range as described in the PR, not the 17xxx range reserved for dashboard endpoints.
There was a problem hiding this comment.
Fixed CustomResources.AppHost port conflict by changing HTTP applicationUrl from 17100 (which conflicted with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL) to 16160 (original assigned port in 16xxx range).
Commit: 7cc18e8
There was a problem hiding this comment.
Fixed port conflict in CustomResources.AppHost by moving applicationUrl from 17100 to 16160 to avoid conflict with ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL. Also updated generate-manifest profile to use the new port.
Commit: 7cc18e8
…pdate MCP ports Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
|
@copilot For the https one, there are 2 app urls an https address and an http address. The http launch profile typically reuses the http address from the http launch profile. It's fine for those 2 be the same within the same launch configuration. Port conflicts only happen across different projects. |
…location - Changed app URLs from 18001/18002 to 16179/16180 (standard app port range) - Updated OTLP endpoints from 18003/18005 to 17119/17120 (standard OTLP range) - Added MCP endpoints 18036/18037 (standard MCP range) - Updated Resource Service endpoints to match OTLP endpoints - Removed launchBrowser from generate-manifest profile for consistency Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
…generate-manifest profiles - assign unique ports to all 52 projects (#13155) * Initial plan * Fix playground AppHost port conflicts - assign unique ports Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> * Fix remaining AppHost port conflicts Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> * Add ASPIRE_DASHBOARD_MCP_ENDPOINT_URL to all playground AppHost projects with unique ports Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> * Add generate-manifest launch profile to all playground AppHost projects Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> * Remove generate-manifest profile from AspireWithMaui.AppHost Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> * Fix code review issues: remove trailing commas, fix port conflicts, update MCP ports Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
Description
31 playground AppHost projects shared port 15888, preventing simultaneous execution. Assigned unique ports to all 52 AppHost projects using systematic allocation, added
ASPIRE_DASHBOARD_MCP_ENDPOINT_URLto all playground samples with unique ports, and ensured appropriate projects have thegenerate-manifestlaunch profile:Changes:
launchSettings.jsonfilesASPIRE_DASHBOARD_MCP_ENDPOINT_URLto all 52 AppHost projects with unique portsgenerate-manifestlaunch profile to 51 appropriate AppHost projectsmanifest→generate-manifestin 2 projects (AspireJavaScript, AspireWithNode)Example (TestShop.AppHost):
Example (AzureOpenAIEndToEnd.AppHost - port conflict fixed):
Example (ProxylessEndToEnd.AppHost):
"ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:17199", + "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "https://localhost:18052",Example (AspireJavaScript.AppHost - generate-manifest):
Example (AzureAppConfiguration.AppHost - generate-manifest):
Code Review Fixes:
All AppHost projects now run concurrently without port conflicts, have unique MCP endpoint ports, and 51 appropriate projects have consistent
generate-manifestlaunch profiles (AspireWithMaui excluded as it's a MAUI client app).Fixes #9694
Checklist
<remarks />and<code />elements on your triple slash comments?doc-ideatemplatebreaking-changetemplatediagnostictemplateOriginal prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.