From fd44667abc09490cd54b69523dcb8aeb6c059c3d Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Mon, 20 Sep 2021 16:33:51 +0200 Subject: [PATCH] Fix signal URL for virtual directories Fixes #1525 --- .../Services/DefaultAbsoluteUrlProvider.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/activities/Elsa.Activities.Http/Services/DefaultAbsoluteUrlProvider.cs b/src/activities/Elsa.Activities.Http/Services/DefaultAbsoluteUrlProvider.cs index a46d7767b..2116b4087 100644 --- a/src/activities/Elsa.Activities.Http/Services/DefaultAbsoluteUrlProvider.cs +++ b/src/activities/Elsa.Activities.Http/Services/DefaultAbsoluteUrlProvider.cs @@ -18,7 +18,13 @@ namespace Elsa.Activities.Http.Services if (baseUrl == null) throw new Exception("There was no base URL configured, which means no absolute URL can be generated from outside the context of an HTTP request. Please make sure that `HttpActivityOptions` is configured correctly. The configuration key used in most Elsa samples is usually: \"Elsa:Server:BaseUrl\""); - return new Uri(baseUrl, relativePath); + // To not lose any base path information, we need to ensure that: + // - Base path ends with a slash. + // - Relative path does NOT start with a slash. + var baseUri = new Uri(baseUrl.ToString().TrimEnd('/') + '/'); + relativePath = relativePath.TrimStart('/'); + + return new Uri(baseUri, relativePath); } } } \ No newline at end of file