OrleansContrib / OrleansDashboard

:bar_chart: A developer dashboard for Microsoft Orleans
MIT License
704 stars 162 forks source link

Orleans Dashboard behind an AzureLoad Balancer #406

Open weary1travler opened 1 year ago

weary1travler commented 1 year ago

Hello! I want to bring a little attention to placing an Orleans Dashboard behind an Application Gateway:

I've set up an Azure Application gateway pointing to an application that uses the Orleans dashboard.

Technologies being used:

Application Gateway: I know I have the correct:

Here's what a basic request would look for accessing the OrleansDashboard on the managed service fabric cluster

https://subdomain.domain.com/RuleWithinAppGWToForwardAllRequestsTo/orleans

First, what we experienced was what is detailed below:

image

The first request sent receives a '200' response but the subrequests following it for the OrleansDashboard all receive multiple 301s and 404s

I found a hack basically where within the Orleans package of my application, I've added to the /Orleans and replaced it with my desired directory or path I want to use when accessing the Orleans dashboard: siloBuilder.UseDashboard(options => { options.HostSelf = true; options.HideTrace = false;
options.ScriptPath = orleansSettings.ScriptPath;
});

ScriptPath: "/RuleWithinAppGWToForwardAllRequestsTo/orleans"

Before '/Orleans' After within the Orleans section of my application '/RuleWithinAppGWToForwardAllRequestsTo/Orleans' When I reupload my application to the managed service fabric cluster, it works perfectly.

My request:

Something is happening with the OrleansDashboard that it drops the /RuleWithinAppGWToForwardAllRequestsTo/ part of my request.

This is a simple hack, but I want to determine why the OrleansDashboard drops the directory I've configured in the application gateway.

weary1travler commented 1 year ago

So I found something that might also work, which is adding a period in front of the path for the orleans ScriptPath...

options.ScriptPath = "./Orleans";

Can the script path be relative instead of absolute?

richorama commented 1 year ago

The path is relative I believe. I have seen similar problems where adding trailing slash to the url fixes it.