hello @venkat Azure Linux can use Apache as its webserver and then it will use use .htaccess. In my case I am using Azure Linux with an nginx webserver so it will use the nginx.conf .
When I look within the Azure container instance I do see an nginx.conf file but it is not the one I uploaded as part of my container as was the case in my local docker container. The Azure nginx.conf seems to have its own that possiby is not updateable. The nginx.conf does have a line at the end to extend to a /etc/nginx/conf.d/*.conf
In the /etc/nginx/conf.d folder there is a default.conf that may be were I am suppoed to put my redirects and should be getting executed with the base nginx.conf. I have tried manually updating the default.conf file in the instance and restarting but still no luck.
I will try submitting this issue to an Azure forum as it is not really a problem specific to AspNetZero.
Thank you but the nginx.conf file that rewrites the URL properly as it is working fine in my local docker container. The issue is with Azure not properly updating the nginx.conf file. Based on this, I realize this is beyond the expected support of AspNetZero support.
THat beiing said, has anyone encountered this error and figured out how to resolve it?
I’m pretty sure it is an issue with the Url Rewrite – thanks for suggesting it. In a Linux container the web server is NGINX so the Url Rewrite has to be configured in the nginx.conf file not the web.config like for IIS I see the nginx.conf file got uploaded correctly on my local docker container which is why it is working. The file did not upload properly for the Azure container and, as a result, the Url rewrite does not work.
I now need to figure out how to load the nginx.conf file into the Azure Linux angular container.
Thanks,
The angular app did not contain a web.config on my local or Azure container. I just added the web.config from my development environment that came with the AspNetZero template into the Azure container (asset folder) and published it into Azure, restarted the app, but it didn't make a difference.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
<mimeMap fileExtension="woff" mimeType="application/font-woff" />
<mimeMap fileExtension="woff2" mimeType="application/font-woff" />
</staticContent>
<!-- IIS URL Rewrite for Angular routes -->
<rewrite>
<rules>
<rule name="Angular Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
If I don't even change the Tenant on the Login popup leaving it as "Default" and click "Save" button I see in Fiddler a successful server-side call to /api/services/app/Account/IsTenantAvailable followed immediately by the unsuccessful call to the http://websitename.eastus.azurecontainer.io/account/login
in fact, if I enter the base http://websitename.eastus.azurecontainer.io the login screen appears and the "unknown' url appears in the browser url location: http://websitename.eastus.azurecontainer.io/account/login If I just move my cursor up to the browser url location and press Enter I get the same 404 error
Thanks aaron for your help! The source of the problem was a snippet of code I had added while trying to create separate DbContexts for each of the plugin applications. This code was no longer needed but must have been interfering with the connection string when running in docker.
Thanks aaron.
Do you have any idea why the connection string would be null? I have put the static IP address in the Connection string in appsettings.json and can run it on the work station. I checked appsettings.Staging.json in the build\outputs\Host folder and it has the same connection string. (The docker ASPNETCORE_ENVIRONMENT=Staging") Also, do you know what the entries should be for ServerRootAddress and ClientRootAddress for docker?
Thanks
Thank you VERY much! I added the ValidateIssuer entry to the appsettings.json file and to the xxxWebHostModule.cs and it worked.
It is as was downloaded except for removal of the Google and Facebook isEnabled if clauses as these two authentication providers will never be enabled.
Thanks for the suggestion. I had found the MultipleDbContextEfCoreDemo and was using it to go by but in my case I am trying to set the second dbcontext from the plugin. However, instead of adding a second dbcontext in the plugin I am somehow overriding the primary dbcontext.
I have been able to resolve the issue with the "invalid value for key 'attachdbfilename' issue though. I thought that was the source of the problem but it wasn't.