**額外問一下IIS的部份的路徑問題是怎判斷
網路上都寫|DataDirectory|\database.db 然後用絕對路徑也不能之後路徑的部分猜了一下
"DefaultConnection": "Data Source=./database.db;"
用相對路徑就可以了**
昨天測試後有出現這個錯誤
Microsoft.EntityFrameworkCore.Database.Connection[20004] An error occurred using the connection to database 'main' on server '|DataDirectory|\database.db'.
然後改成絕對路徑
DefaultConnection": "Data Source=d:\www\InProPlayerWeb\InProPlayerWeb\bin\Release\net6.0\publish\database.db"
這樣IIS上也不行 所以我現在也不確定 路徑的部分要怎修改
找到的都是用|DataDirectory|\database.db 這種的方式
目前本機上內網內測試
原本發佈後用內網IP可以連線跟使用
後來在增加了SQLite後發佈 IIS
本機VS編譯正常 用IP連線後 就跳出 error500 伺服器錯誤
想問一下是SQLite 發佈後IIS 有其他需要設定跟安裝的嗎
Nuget Microsoft.EntityFrameworkCore.Sqlite 7.0.5版
program.cs
builder.Services.AddDbContext<ApplicationDbContext>(option => option.UseSqlite(
builder.Configuration.GetConnectionString("DefaultConnection")));
ApplicationDbContext.cs
using Microsoft.EntityFrameworkCore;
using InProPlayerWeb.Models;
using Microsoft.Extensions.Configuration;
namespace InProPlayerWeb.Helper
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> option) : base(option)
{
}
public DbSet<Configuration> Configuration { get; set; }
}
}
appsetting.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Data Source=database.db"
}
}
Controller.cs 註解的部分開啟 IIS就會500
public class HomeController : Controller
{
//private readonly ApplicationDbContext _context;
private readonly PortHelper _portHelper;
private readonly int areaCount = 20;
private readonly int groupCount = 6;
private bool[] ZoneStatus = Enumerable.Repeat(false, 20).ToArray();
public HomeController(PortHelper portHelper)
//public HomeController(PortHelper portHelper, ApplicationDbContext context)
{
_portHelper = portHelper;
//_context = context;
//var configDB = _context.Configuration.ToList();
//_portHelper.PortName = configDB[0].PortName;
//_portHelper.BaudRate = configDB[0].BaudRate;
}
}
本機編譯正常,那有run起來看是不是也正常嗎?
SQLite可以在本機上運行,在本機debug看看?
昨天測試後有出現這個錯誤
Microsoft.EntityFrameworkCore.Database.Connection[20004] An error occurred using the connection to database 'main' on server '|DataDirectory|\database.db'.
然後改成絕對路徑
DefaultConnection": "Data Source=d:\www\InProPlayerWeb\InProPlayerWeb\bin\Release\net6.0\publish\database.db"
這樣IIS上也不行 所以我現在也不確定 路徑的部分要怎修改 找到的都是用|DataDirectory|\database.db 這種的方式
我個人路徑是這樣寫: "Data Source=Data/database.db"
要確認專案路徑底下,是否有產生 Data 資料夾
我是放在底層 所以我本機是這樣寫"Data Source=database.db"
IIS的部分 參考網路文章
"Data Source=|DataDirectory|\\database.db"
"Data Source=d:\\www\\InProPlayerWeb\\InProPlayerWeb\\bin\\Release\\net6.0\\publish\\database.db"
後來剛剛自己猜了一下用相對路徑 就正常了"Data Source=./database.db"
因為第一次用IIS所以也不確定他的路徑部分是怎調整
恭喜有解決~