- 2026-07-27 V 1.0.0.3 Se habilita EnableRetryOnFailure en la conexion a la bd y se aumenta el timeout a 60 segundos

This commit is contained in:
2026-07-27 09:58:28 +02:00
parent cfad5e9ea2
commit 2c9db5146f
6 changed files with 38 additions and 24 deletions

View File

@@ -42,9 +42,9 @@
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.7.1" /> <PackageReference Include="System.Linq.Dynamic.Core" Version="1.7.1" />
<PackageReference Include="System.ServiceModel.Federation" Version="10.0.652802" /> <PackageReference Include="System.ServiceModel.Federation" Version="10.0.652802" />
<PackageReference Include="TSpdf.commons" Version="3.0.0" /> <PackageReference Include="TSpdf.commons" Version="3.0.4" />
<PackageReference Include="TSpdfUtils" Version="3.0.0" /> <PackageReference Include="TSpdfUtils" Version="3.0.4" />
<PackageReference Include="tsWPFCore" Version="1.3.11" /> <PackageReference Include="tsWPFCore" Version="1.4.2" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -23,7 +23,7 @@
<PackageReference Include="Serilog.Extensions.Hosting" Version="9.0.0" /> <PackageReference Include="Serilog.Extensions.Hosting" Version="9.0.0" />
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageReference Include="tsCorreos" Version="1.0.7" /> <PackageReference Include="tsCorreos" Version="1.0.7" />
<PackageReference Include="tsUtilidades" Version="1.1.18" /> <PackageReference Include="tsUtilidades" Version="1.1.22" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -6,12 +6,13 @@
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>dotnet-WSAsegasa-3170e77c-9190-48a1-9c66-26323b65ac5d</UserSecretsId> <UserSecretsId>dotnet-WSAsegasa-3170e77c-9190-48a1-9c66-26323b65ac5d</UserSecretsId>
<RuntimeIdentifiers>win-x64;linux-x64</RuntimeIdentifiers> <RuntimeIdentifiers>win-x64;linux-x64</RuntimeIdentifiers>
<Version>1.0.0.2</Version> <Version>1.0.0.3</Version>
<AssemblyVersion>1.0.0.2</AssemblyVersion> <AssemblyVersion>1.0.0.3</AssemblyVersion>
<Authors>Manuel</Authors> <Authors>Manuel</Authors>
<Company>Tecnosis S.A</Company> <Company>Tecnosis S.A</Company>
<Description>Servicio de envío de facturas de asegasa al sistema Verifactu</Description> <Description>Servicio de envío de facturas de asegasa al sistema Verifactu</Description>
<PackageReleaseNotes> <PackageReleaseNotes>
- 2026-07-27 V 1.0.0.3 Se habilita EnableRetryOnFailure en la conexion a la bd y se aumenta el timeout a 60 segundos
- 2026-06-15 V 1.0.0.2 Actualización librería tsUtilidades - 2026-06-15 V 1.0.0.2 Actualización librería tsUtilidades
- 2026-05-19 V 1.0.0.1 Se cambian los logs de correo a tsnotificaciones. - 2026-05-19 V 1.0.0.1 Se cambian los logs de correo a tsnotificaciones.
- 2026-05-19 V 1.0.0.0 Versión renombrada de wsasegasa a wsasegasaverifactu. - 2026-05-19 V 1.0.0.0 Versión renombrada de wsasegasa a wsasegasaverifactu.
@@ -29,8 +30,8 @@
<PackageReference Include="System.ServiceModel.NetTcp" Version="8.1.2" /> <PackageReference Include="System.ServiceModel.NetTcp" Version="8.1.2" />
<PackageReference Include="System.ServiceModel.Primitives" Version="8.1.2" /> <PackageReference Include="System.ServiceModel.Primitives" Version="8.1.2" />
<PackageReference Include="tsCorreos" Version="1.0.7" /> <PackageReference Include="tsCorreos" Version="1.0.7" />
<PackageReference Include="tsUtilidades" Version="1.1.18" /> <PackageReference Include="tsUtilidades" Version="1.1.22" />
<PackageReference Include="tsVeriFactu" Version="2.4.2" /> <PackageReference Include="tsVeriFactu" Version="2.4.3" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -16,7 +16,7 @@
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.3" /> <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.3" />
<PackageReference Include="PropertyChanged.Fody" Version="4.1.0" /> <PackageReference Include="PropertyChanged.Fody" Version="4.1.0" />
<PackageReference Include="tsEFCore8" Version="1.0.5" /> <PackageReference Include="tsEFCore8" Version="1.0.5" />
<PackageReference Include="tsUtilidades" Version="1.1.18" /> <PackageReference Include="tsUtilidades" Version="1.1.22" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -15,6 +15,7 @@ using static System.Net.Mime.MediaTypeNames;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using bdAsegasa.db; using bdAsegasa.db;
using bdAsegasa.dbcontext; using bdAsegasa.dbcontext;
using Pomelo.EntityFrameworkCore.MySql.Internal;
namespace bdAsegasa namespace bdAsegasa
{ {
@@ -56,33 +57,45 @@ namespace bdAsegasa
}); });
private static string? ConexionPorDefecto=null; private static string? ConexionPorDefecto=null;
public static tscgestionasegasa NuevoContexto(string NombreConexion = "" ,bool Lazy = true, bool SoloLectura = false, bool ConEventoSavingChanges = false, string aplicaciones = "") public static tscgestionasegasa NuevoContexto(string NombreConexion = "", bool Lazy = true, bool SoloLectura = false, bool ConEventoSavingChanges = false, string aplicaciones = "")
{ {
string? cnx = null; string cnx;
if (NombreConexion=="") if (string.IsNullOrEmpty(NombreConexion))
{ {
if (ConexionPorDefecto == null) ConexionPorDefecto = Conexion.ObtieneConexionDefecto(); if (ConexionPorDefecto == null) ConexionPorDefecto = Conexion.ObtieneConexionDefecto();
cnx = ConexionPorDefecto; cnx = ConexionPorDefecto;
} }
else else
{ {
cnx = Conexion.ObtieneConexionDefecto(NombreConexion); cnx = Conexion.ObtieneConexionDefecto(NombreConexion);
} }
var ob = new DbContextOptionsBuilder<gestionasegasaContext>(); var optionsBuilder = new DbContextOptionsBuilder<gestionasegasaContext>();
// ob.UseLoggerFactory(_myLoggerFactory);
// ob.UseInternalServiceProvider(<EnumeracionesService>) // Ejemplo con Pomelo.EntityFrameworkCore.MySql
ob.UseMySql(cnx, Microsoft.EntityFrameworkCore.ServerVersion.Parse("5.7.0-mysql")); optionsBuilder.UseMySql(cnx, ServerVersion.Parse("5.7.0-mysql"), mySqlOptions =>
if (Lazy) ob.UseLazyLoadingProxies(); {
if (SoloLectura) ob.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); // Habilita reintentos transitorios (por defecto 3 reintentos)
var Opciones = ob.Options; mySqlOptions.EnableRetryOnFailure();
tscgestionasegasa bd = new tscgestionasegasa(Opciones);
// Ajusta timeout de comando (segundos)
mySqlOptions.CommandTimeout(60);
// Si quieres controlar número de reintentos y backoff:
// mySqlOptions.EnableRetryOnFailure(maxRetryCount: 5, maxRetryDelay: TimeSpan.FromSeconds(5), errorNumbersToAdd: null);
});
if (Lazy) optionsBuilder.UseLazyLoadingProxies();
if (SoloLectura) optionsBuilder.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
var opciones = optionsBuilder.Options;
var bd = new tscgestionasegasa(opciones);
bd.Aplicaciones = aplicaciones; bd.Aplicaciones = aplicaciones;
if (ConEventoSavingChanges) bd.SavingChanges += GuardandoCambios; if (ConEventoSavingChanges) bd.SavingChanges += GuardandoCambios;
return bd; return bd;
} }
//public static Datos.BBDD ObtieneBBDD(string NombreConexion) //public static Datos.BBDD ObtieneBBDD(string NombreConexion)
private static void GuardandoCambios(object? sender, SavingChangesEventArgs e) private static void GuardandoCambios(object? sender, SavingChangesEventArgs e)

View File

@@ -9,6 +9,6 @@
<PackageReference Include="System.ServiceModel.Http" Version="8.*" /> <PackageReference Include="System.ServiceModel.Http" Version="8.*" />
<PackageReference Include="System.ServiceModel.NetTcp" Version="8.*" /> <PackageReference Include="System.ServiceModel.NetTcp" Version="8.*" />
<PackageReference Include="System.ServiceModel.Primitives" Version="8.*" /> <PackageReference Include="System.ServiceModel.Primitives" Version="8.*" />
<PackageReference Include="tsUtilidades" Version="1.1.18" /> <PackageReference Include="tsUtilidades" Version="1.1.22" />
</ItemGroup> </ItemGroup>
</Project> </Project>