It all started one day when I decided to try and deploy the Bed Brigade National Website (which is a Blazor Server application) to Azure using Github actions.
The github repo is located here: https://github.com/GregFinzer/BedBrigadeNational
Thank God for Patrick God and Tim Corey who have excellent tutorials on YouTube. Here are the videos that I followed when deploying to Azure:
Create Web App in Azure: https://www.youtube.com/watch?v=NiBEk8QepP4
Deploy Blazor with Github actions: https://www.youtube.com/watch?v=wybpWMrpuZk
Updating the Connection String in Blazor: https://www.youtube.com/watch?v=lSCjtrNkT38
Deployment is always difficult and deploying to Azure has its share of pain. Only the first exception was obvious.
Could not find part of the path
SQL Server Transient Failure
builder.Services.AddDbContextFactory<DataContext>(options =>
{
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"), sqlBuilder =>
{
sqlBuilder.EnableRetryOnFailure(5, TimeSpan.FromSeconds(10), null);
});
options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
options.UseApplicationServiceProvider(_svcProvider);
});
Unable to resolve service for type IResponseCompressionProvider
Unable to resolve service for type 'Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider' while attempting to activate
If you have this line in your program.cs, remove it as that is causing the error:
Could not load assembly DependencyModel
Connection Timeout Expired
Microsoft.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=162; handshake=279; [Login] initialization=0; authentication=1; [Post-Login] complete=29565;
This was the worst error to deal with. I can't believe that this is a default Azure option for SQL Server but it is. SQL Server has an Auto Pause feature that if it is not used then it shuts down. Supposedly it should come back up when accessed again but it does not. There is a defect. It shuts down and stays down.
To correct this issue, click on the SQL Service then SQL Databases, then the name of your database and finally Compute + Storage. Uncheck Enable auto-pause.
The other option you should do is to enable Always On for your App Service. Click on your App Service, then Configuration, then General settings, and then Always On.
No comments:
Post a Comment