Blazor Web App .net 9: Я могу открывать и управлять базой данных SQLite в режиме отладки, но не в хостинном веб -приложеC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Blazor Web App .net 9: Я могу открывать и управлять базой данных SQLite в режиме отладки, но не в хостинном веб -приложе

Сообщение Anonymous »

Сегодня был второй день < /strong>, так как я заметил это исключение: < /p>

операция базы данных не удалась при обработке запроса. SQLiteException: SQLite Ошибка 14: «Невозможно открыть файл базы данных». < /h2>
Применение существующих миграций может решить эту проблему. Существуют
миграции, которые не были применены к следующей базе данных (ы): < /p>
blazorwebappadmincontext < /p>
  • 20250708123456_MyArgumentName
  • 20250709789101_MyNewArgumentName1.0.0
  • 20250710111213_MyNewArgumentName1.0.2
Применить Migrations < /kbd> 👈 Это на самом деле кнопка < /p>
В Visual Studio вы можете использовать консоль диспетчера пакетов для применения
restending Migration />
dotnet ef database update


NOTE: My .NET Core Hosting Bundle on Windows Server installed is dotnet-hosting-9.0.6-win.exe

I failed to apply the specific solution to this Проблема, несмотря на то, что я уже сделал эти обходные пути:
  • Обеспечение IIS_IUSRS считывает и записывает разрешения. src = "https://i.sstatic.net/cbmp7vmr.png"/>

    В разработке (режим отладки), I Убедитесь , что приложение Blazor Web уже использует обновленную модель данных и имеет . База данных: < /li>
    < /ol>

    Код: Выделить всё

    using System.ComponentModel.DataAnnotations;
    
    namespace GlamGearAdmin.Models;
    
    public class Admin
    {
    [Key]
    public string? UserID { get; set; }
    public string? Username { get; set; }
    [Required]
    [StringLength(100)]
    [RegularExpression(@"^[A-Z]+[a-zA-Z\s-]*$")]
    public string? GivenName { get; set; }
    public string? MiddleName { get; set; }
    [Required]
    [StringLength(100)]
    [RegularExpression(@"^[A-Z]+[a-zA-Z\s-]*$")]
    public string? FamilyName { get; set; }
    [Required]
    [StringLength(150, MinimumLength = 11)]
    public string? EmailAdd { get; set; }
    [Required]
    [StringLength(100, MinimumLength = 3)]
    [RegularExpression(@"^[A-Z]+[a-zA-Z\s-]*$")]
    public string? RoleType { get; set; }
    }
    
    Изображение

    Here is my relevant source Код: < /p>
    program.cs

    Код: Выделить всё

    using MyBlazorWebAppName.Components;
    using Microsoft.EntityFrameworkCore;
    using MyBlazorWebAppName.Data;
    
    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddDbContextFactory(options =>
    options.UseSqlite(builder.Configuration.GetConnectionString("BlazorWebAppAdminContext") ?? throw new InvalidOperationException("Connection string 'BlazorWebAppAdminContext' not found.")));
    
    builder.Services.AddQuickGridEntityFrameworkAdapter();
    
    builder.Services.AddDatabaseDeveloperPageExceptionFilter();
    
    // Add services to the container.
    builder.Services.AddRazorComponents()
    .AddInteractiveServerComponents();
    
    var app = builder.Build();
    
    // Configure the HTTP request pipeline.
    if (!app.Environment.IsDevelopment())
    {
    app.UseExceptionHandler("/Error", createScopeForErrors: true);
    // The default HSTS value is 30 days.  You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
    app.UseMigrationsEndPoint();
    }
    
    app.UseHttpsRedirection();
    
    app.UseAntiforgery();
    
    app.MapStaticAssets();
    app.MapRazorComponents()
    .AddInteractiveServerRenderMode();
    
    app.Run();
    < /code>
    функциональныйusing Microsoft.EntityFrameworkCore;
    
    namespace GlamGearAdmin.Data
    {
    public class BlazorWebAppAdminContext(DbContextOptions options) : DbContext(options)
    {
    public DbSet Admin { get; set; } = default!;
    }
    }
    
    Примечание. Если вы найдете , это отличается от исходного кода, сгенерированного файлом по умолчанию, после выполнения учебника: Создайте приложение базы данных Blazor Movie (обзор), это потому, что я просто следил за предложениями рефакторирования кода, предоставленными .NET Framework. Тем не менее, это все еще работа в режиме отладчика.

    Код: Выделить всё

    {
    "Logging": {
    "LogLevel": {
    "Default": "Information",
    "Microsoft.AspNetCore": "Warning"
    }
    },
    "AllowedHosts": "*",
    "ConnectionStrings": {
    "BlazorWebAppAdminContext": "Data Source=Data\\BlazorWebAppAdminContext-12345679-10111213-141516.db"
    }
    }
    
    Обратите внимание: для воспроизводимых проблем , на сгенерированном файле web.config мне нужно было добавить эту конфигурацию, чтобы раскрыть фактическую ошибку, которую я предоставил на самой верхней части потока этого вопроса: Ссылка: ASP.NET CORE Развертывание IIS Ошибка: среда разработки не должна быть включена в развернутых приложениях
    Вот полная конфигурация web.config :











    />



    < /code>
    Итак, вот мои вопросы после всех этих трудностей в развертывании моего Blazor Web App (.net 9) с SQLite to IIS 8.5 на SQL Server 2012 R2 Стандарт: < /p>

    имеет какое -либо еще, что -то еще решает тот же вопрос, что и у меня? /> Вы видите неправильную конфигурацию в проекте, с которым я работаю? < /li>
    Я что -то здесь упускаю?>

    Подробнее здесь: https://stackoverflow.com/questions/796 ... g-mode-but
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»