将 ASP.net Core 2.0 部署到 windows 服务器
Deploying ASP.net Core 2.0 to windows server
我已将 asp.net 核心 2.0 应用程序部署到安装了 MsSQL 2017 的 windows 服务器 2012。当我请求与数据库相关的方法时出现以下错误。
appsettings.json内容为:
{
"ConnectionStrings": {
"DefaultConnection": "Server=MGSERVER2012\SQLEXPRESS;Database=TestingCoreIdentity;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
错误详情:
所以我在我的应用程序中做了什么(核心 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; }
}
确保您没有遗漏任何东西。
需要在Startup.cs ConfigureServices 方法中指定连接字符串名称,如下所示。将您的应用程序 DBContext 替换为 "YourDBContext"
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<YourDbContext>(op => p.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
}
我找到了问题的答案:
我在完全许可的情况下在管理工作室中创建了新用户,并在 appsettings.json
中使用了此连接字符串
"DefaultConnection": "Server=MGSERVER2012\SQLEXPRESS;Database=xxx;MultipleActiveResultSets=true;Persist Security Info=True;User ID=AspCoreUser;Password=Password@123"
我还为 appsettings.json 的用户组授予 windows 权限。
我已将 asp.net 核心 2.0 应用程序部署到安装了 MsSQL 2017 的 windows 服务器 2012。当我请求与数据库相关的方法时出现以下错误。
appsettings.json内容为:
{
"ConnectionStrings": {
"DefaultConnection": "Server=MGSERVER2012\SQLEXPRESS;Database=TestingCoreIdentity;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
错误详情:
所以我在我的应用程序中做了什么(核心 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; }
}
确保您没有遗漏任何东西。
需要在Startup.cs ConfigureServices 方法中指定连接字符串名称,如下所示。将您的应用程序 DBContext 替换为 "YourDBContext"
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<YourDbContext>(op => p.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
}
我找到了问题的答案: 我在完全许可的情况下在管理工作室中创建了新用户,并在 appsettings.json
中使用了此连接字符串 "DefaultConnection": "Server=MGSERVER2012\SQLEXPRESS;Database=xxx;MultipleActiveResultSets=true;Persist Security Info=True;User ID=AspCoreUser;Password=Password@123"
我还为 appsettings.json 的用户组授予 windows 权限。