У меня есть ASP. NET Core 2.1 WebApi, работающий на узле Service Fabri c за обратным прокси-сервером (Azure Application Gateway).
URL-адреса выглядят следующим образом:
Информация о приложении добавляется как обычно.
public void ConfigureServices(IServiceCollection services)
{
services.AddApplicationInsightsTelemetry();
new ServiceInstanceListener(serviceContext => new HttpSysCommunicationListener(serviceContext, "ServerServiceEndpoint",
(url, listener) =>
{
var endpointConfig = serviceContext.CodePackageActivationContext.GetEndpoint("ServerServiceEndpoint");
return new WebHostBuilder()
.UseHttpSys()
.ConfigureServices(services => services.AddSingleton(serviceContext))
.UseContentRoot(Directory.GetCurrentDirectory())
.UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None)
.UseStartup<Startup>()
.UseUrls($"{url}{endpointConfig.PathSuffix}") // "/product/api"
.Build();
}))
Так что endpointConfig.PathSuffix
не добавляется в запрос телеметрии. Что я могу сделать, чтобы это исправить? Я бы предпочел написать собственный инициализатор или процессор телеметрии.
Я попытался добавить эту строку в мой WebHostBuilder без каких-либо изменений в поведении:
.Configure(app => app.UsePathBase(endpointConfig.PathSuffix))
Редактировать: PathBase
правильно идентифицируется ASP. NET Core, но отсутствует в запросе телеметрии. Если я настрою автономный проект без Service Fabri c, PathBase будет добавлен в Request Telemetry, как и ожидалось.