diff --git a/Oqtane.Server/Repository/UrlMappingRepository.cs b/Oqtane.Server/Repository/UrlMappingRepository.cs index 774c3189..82f747da 100644 --- a/Oqtane.Server/Repository/UrlMappingRepository.cs +++ b/Oqtane.Server/Repository/UrlMappingRepository.cs @@ -68,6 +68,7 @@ namespace Oqtane.Repository public UrlMapping GetUrlMapping(int siteId, string url) { using var db = _dbContextFactory.CreateDbContext(); + url = (url.StartsWith("/")) ? url.Substring(1) : url; url = (url.Length > 750) ? url.Substring(0, 750) : url; var urlMapping = db.UrlMapping.Where(item => item.SiteId == siteId && item.Url == url).FirstOrDefault(); if (urlMapping == null) @@ -82,7 +83,14 @@ namespace Oqtane.Repository urlMapping.Requests = 1; urlMapping.CreatedOn = DateTime.UtcNow; urlMapping.RequestedOn = DateTime.UtcNow; - urlMapping = AddUrlMapping(urlMapping); + try + { + urlMapping = AddUrlMapping(urlMapping); + } + catch + { + // ignore duplicate key exception which can be caused by a race condition + } } } else