我已将asp.net core 2.0应用程序部署到安装了MsSQL 2017的Windows Server 2012。当我请求数据库相关方法时,我得到以下错误。
appsettings.json的内容是:
{
"ConnectionStrings": {
"DefaultConnection": "Server=MGSERVER2012\SQLEXPRESS;Database=TestingCoreIdentity;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
答案 0 :(得分:1)
所以我在我的应用程序中做了什么(CORE 1.0,在2.0中应该类似)
在配置中注册 -
public void ConfigureServices(IServiceCollection services)
{
#region connection
services.AddDbContext<TWCStoreContext>(options => options.UseSqlServer(Configuration.GetValue<string>("Data:DefaultConnection")));
#endregion
services.Configure<ConfigData>(Configuration.GetSection("Data"));
}
在上下文文件中 -
public partial class TWCStoreContext : DbContext
{
private readonly IOptions<ConfigData> _ConfigData;
public TWCStoreContext(DbContextOptions<TWCStoreContext> options, IOptions<ConfigData> ConfigData)
: base(options)
{
_ConfigData = ConfigData;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(_ConfigData.Value.DefaultConnection);
}
}
配置 -
public class ConfigData
{
public string DefaultConnection{ get; set; }
}
确保你没有遗漏任何东西。
答案 1 :(得分:0)
需要在Startup.cs ConfigureServices方法中指定连接字符串名称,如下所示。将您的应用程序DBContext替换为“YourDBContext”
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<YourDbContext>(op => p.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
}
答案 2 :(得分:0)
我找到了问题的答案: 我在管理工作室中创建了具有完全持久性的新用户,并在appsettings.json
中使用了此连接字符串 "DefaultConnection": "Server=MGSERVER2012\\SQLEXPRESS;Database=xxx;MultipleActiveResultSets=true;Persist Security Info=True;User ID=AspCoreUser;Password=Password@123"
我还为appsettings.json的用户组授予了windows权限。