I'm using modular monolith layered app architecture to combine Main with few modules. Modules have razor CSHTML pages which works locally in https://localhost/ i.e. local dev environment. All default page paths are working good. i.e. Via Menu Contributor in Main module, accessing the pages works perfectly. But when deployed to IIS server in Azure VM, via devOps script, same app menu page paths gives 404 error. While diagnosing, have these json responses for the corresponding diagnostic controller method code for your reference. I've also attached the csproj files of the Main module and Lms module. Is there anything I'm setting inadvertently wrong while deploying?
localhost pic: https://prime2dev.blob.core.windows.net/general/host/delete-this-temp/localhost.jpg azure IIS pic: https://prime2dev.blob.core.windows.net/general/host/delete-this-temp/Azure-IIS-Hosted.jpg
if I use this code on server API side to diagnose: [HttpGet("check-razor-pages")] public IActionResult CheckRazorPages() { var pages = _actionDescriptorProvider.ActionDescriptors.Items .OfType<Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor>() .Where(p => p.ViewEnginePath.Contains("Lms") || p.ViewEnginePath.Contains("Events") || p.ViewEnginePath.Contains("Case")) .Select(p => new { ViewEnginePath = p.ViewEnginePath, RelativePath = p.RelativePath, DisplayName = p.DisplayName, RouteTemplate = p.AttributeRouteInfo?.Template, // ← THIS IS CRITICAL RouteValues = p.RouteValues }) .ToList();
return Ok(new
{[https://playwarestudios-my.sharepoint.com/:f:/g/personal/pwsadmin_playwarestudios_onmicrosoft_com/EgMOorRpfYhLikQCbbSlcJIBFC01j6KJVpuq7762tz04dA?e=ZyUqtE](here)
TotalPages = pages.Count,
Pages = pages,
NoRouteTemplates = pages.Where(p => string.IsNullOrEmpty(p.RouteTemplate)).ToList()
});
}
always gives no results.
refer to csproj files and MainWebmodule,cs and LmsWebModule.cs code shared here
Context: I've gone through the modular monolith documentation and in our unique project requirements, we have done this, we created an abp tiered /postgresql (prime_core) solution with all abp modules + MVC app + Auth server. Now the MVC app kinda acts as an admin UI to all abp modules. We also created an angular app for public facing site. Now for the developers involved in each module, we went ahead to create a separate tiered/postgresql solution + MVC app. Then in here, we modified the ef framework connection strings to use prime_core db for all abp modules' data calls. The idea is all abp module will have direct db calls to prime_core db. whereas for this module's entities, we created prime_<module_name> db. Overall every module will have their own databases and for abp modules look to prime_core db.
Problem: As this new module abp solution's MVC app was run against the auth server, authentication works but fails at this call api : https://localhost:44366/api/account/dynamic-claims/refresh and ultimately fails to authenticate and proceed. Add on question: is our approach to avoid full-blown microservice with attached image works good from a abp solution perspective. we need every developer to have their own full solution, admin screens and deploy/test independently and generic angular app take the APIs from these deployed sites. Will permissions/language/distributed events/signalr hub works in this architecture. Refer to 04-final.drawio.pdf
Exception Message and full stack trace: refer to 184 to 219 in the attached authserver-logs.txt Also attached the authserver side logs: webserver-logs.txt
Steps to Reproduce: Create a abp solution : Ldr.Prime.Core (check the attached abp file - abp-solution-prime_Core.txt), you can use local postgresql Create another abp solution Ldr.Prime.Case (check the attached abp file - abp-solution-prime_Case.txt). Modify the appsettings to point to 1st solution Auth server & Remote services + point to a common azure postgresql server and azure redis server, ensure entries are in there in prime_core db for OpenIddictApplications and other tables. Also attached the zip file for both the solutions stripping of sensitive data - Ldr.Prime.CoreAndCase-abpsolutions.zip
Now run the 1st abp solution projects via dotnet run - Web, Http.Host and Auth Server Next run the 2nd abp solution Web project, authenticate via auth server, redirection fails with proper user logged in
All attachments refereed above in google drive https://drive.google.com/drive/folders/1FhCkST09CRyvHky5V2HnYMPePx0LUqcU?usp=sharing
Installed abp suite for the verry first time to generate app/microservice template based solution
stack trace / error message [13:42:54 ERR] ---------- RemoteServiceErrorInfo ---------- { "code": null, "message": "An internal error occurred during your request!", "details": null, "data": {}, "validationErrors": null }
[13:42:54 ERR] Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object.
suspect somehow 6.0 templates gets donwloaded and sbp suite 5.3 using that to generate the solution or how do we force the template version and if so where do I download old templates?