diff --git a/Directory.Packages.props b/Directory.Packages.props index 22afa43..f70aad7 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -3,20 +3,20 @@ true - - - + + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/MobileConfiguration/Dockerfile b/MobileConfiguration/Dockerfile index e29d2ad..226cb29 100644 --- a/MobileConfiguration/Dockerfile +++ b/MobileConfiguration/Dockerfile @@ -3,7 +3,7 @@ WORKDIR /app FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build WORKDIR /src -COPY ["MobileConfiguration/NuGet.Config", "MobileConfiguration/"] +COPY ["NuGet.Config", "MobileConfiguration/"] COPY ["MobileConfiguration/MobileConfiguration.csproj", "MobileConfiguration/"] COPY ["Directory.Packages.props", "."] COPY . . diff --git a/MobileConfiguration/Program.cs b/MobileConfiguration/Program.cs index 15c0279..30e855d 100644 --- a/MobileConfiguration/Program.cs +++ b/MobileConfiguration/Program.cs @@ -97,8 +97,30 @@ builder.Services.AddDbContext(builder => builder.UseInMemoryDatabase("ConfigurationDatabaseTest")); } else { - builder.Services.AddDbContext(options => - options.UseSqlServer(configuration.GetConnectionString("ConfigurationDatabase"))); + SqlServerRetryOptions retryOptions; + try + { + retryOptions = ConfigurationReader.GetSection("AppSettings:SqlServerRetry"); + } + catch (KeyNotFoundException) + { + retryOptions = null; + } + + if (retryOptions != null) + { + builder.Services.AddDbContext(options => options.UseSharedSqlServer(ConfigurationReader.GetConnectionString("ConfigurationDatabase"), retry => { + retry.AdditionalTransientErrorNumbers = retryOptions.AdditionalTransientErrorNumbers; + retry.MaxRetryCount = retryOptions.MaxRetryCount; + retry.MaxRetryDelay = retryOptions.MaxRetryDelay; + })); + } + else + { + builder.Services.AddDbContext(options => options.UseSqlServer(ConfigurationReader.GetConnectionString("ConfigurationDatabase"), retry => { + retry.EnableRetryOnFailure(); + })); + } } bool logRequests = ConfigurationReader.GetValueOrDefault("MiddlewareLogging", "LogRequests", true); bool logResponses = ConfigurationReader.GetValueOrDefault("MiddlewareLogging", "LogResponses", true); diff --git a/MobileConfiguration/NuGet.Config b/NuGet.Config similarity index 100% rename from MobileConfiguration/NuGet.Config rename to NuGet.Config