I have a Blazor Hosted WebAssembly app written on .NET8, so there are three projects Client, Server and the Shared. Intercommunication happends with Web API calls. In my razor components I have the following code to throw exceptions into a pop-up modal window:
The code in any function:
if (!response.IsSuccessStatusCode)
{
teamProcessing = false;
var responseContent = await response.Content.ReadAsStringAsync();
await ShowTheExceptionModal(responseContent);
}
The exception function
protected async Task ShowTheExceptionModal(string message)
{
var options = new ModalOptions()
{
Size = ModalSize.Custom,
SizeCustomClass = "bm-modal-custom"
};
var parameters = new ModalParameters();
parameters.Add("message", message);
var messageForm = modal.Show<Message_Modal>("Exception Error", parameters, options);
var result = await messageForm.Result;
}
The above works fine when ASPNETCORE_ENVIRONMENT is 'Development' but when ASPNETCORE_ENVIRONMENT is something else, the window opens but there is no message. I think this behaviour occurs due to that exceptions might provide sensitive information. I have also read that there is a middleware when ASPNETCORE_ENVIRONMENT is not 'Development' due to this code on Program.cs of the server.
if (app.Environment.IsDevelopment())
{
app.UseWebAssemblyDebugging();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
In my case I need to throw those exceptions and do not change the code on all functions within the application, is this possible somehow?