Я столкнулся с очень странной ошибкой в приложении ...
Я разрабатываю свое приложение на asp. net ядро 2.2 сначала с кодом, я делаю миграцию из Visual Studio на SQL Server On Host для создания базы данных, таблиц и вставки данных очень хорошо работает.
после этого выполните тест с locahost с базой данных на хосте, все снова работает нормально.
Но после загрузки файлов publi sh на сервер (хостинг IIS) появляется эта ошибка ...
действительно это безумие
вот мой код, что мне не хватает?
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContextPool<ApplicationDbContext>
(option => option.UseSqlServer(Configuration.GetConnectionString("Connection")));
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.ConfigureApplicationCookie(options =>
{
options.Cookie.Name = ".AspNetCore.Identity.Application";
options.Cookie.IsEssential = true;
options.Cookie.Path = "/";
options.Cookie.SameSite = SameSiteMode.Strict;
options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
});
#region language
services.AddMvc()
.AddViewLocalization(Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization(options =>
{
options.DataAnnotationLocalizerProvider = (type, factory) =>
{
var assemblyName = new AssemblyName(typeof(SharedResource).GetTypeInfo().Assembly.FullName);
return factory.Create("SharedResource", assemblyName.Name);
};
});
services.AddTransient<LocalizationService>();
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.Configure<RequestLocalizationOptions>(
options =>
{
var supportedCultures = new List<CultureInfo>
{
new CultureInfo("ar-EG"),
new CultureInfo("en-US"),
};
//options.DefaultRequestCulture = new RequestCulture(culture: "ar-EG", uiCulture: "en-US");
options.DefaultRequestCulture = new RequestCulture("en-US");
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
options.RequestCultureProviders.Insert(0, new QueryStringRequestCultureProvider());
});
#endregion
services.AddDefaultIdentity<ExtendIdentityUser>(options =>
{
options.Password.RequiredLength = 8;
options.Password.RequireUppercase = false;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequiredUniqueChars = 0;
options.Password.RequireLowercase = false;
})
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddScoped<IUnitOfWork, UnitOfWork>();
services.AddScoped<IExtendIdentityUser, ExtendIdentityUserRepository>();
services.AddMvc(opts =>
{
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
.AddJsonOptions(opt => opt.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
}
var locOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
app.UseRequestLocalization(locOptions.Value);
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
{
"ConnectionStrings": {
"Connection": "Server=**ServerName*;Database=*database*;User Id=*UserName*;password=******;Trusted_Connection=False;MultipleActiveResultSets=true;"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
public class ApplicationDbContext : IdentityDbContext<ExtendIdentityUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public new DbSet<ExtendIdentityUser> Users { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
ModelBuilderExtensions.Seed(builder);
}
}