【发布时间】:2018-10-11 08:47:34
【问题描述】:
我在具有 .NET Core 2.0 和 PostgreSql 数据库的项目中使用 VS 2017。 Npgsql 用作数据库提供程序。
这是 DbContext 的配置方式:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"),
b => b.MigrationsAssembly("MyAssembly")));
...
}
这是部署的配置 当 Web Deploy 尝试在发布过程中应用迁移时,会出现错误:
错误:Web 部署任务失败。
值 'User ID=postgres;Host=localhost;Port=5432;Database=MyDatabase' 不是有效的连接字符串或绝对路径。了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_INVALID_CONNECTION_STRING。
不支持关键字:“主机”。 在 System.Data.SqlClient.SqlConnectionStringBuilder.GetIndex(字符串关键字) 在 System.Data.SqlClient.SqlConnectionStringBuilder.set_Item(字符串关键字,对象值) 在 System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(字符串值) 在 System.Data.SqlClient.SqlConnectionStringBuilder..ctor(字符串连接字符串) 在 Microsoft.Web.Deployment.ConnectionStringMatcher.RemoveExtraSlashFromDataSourceName(字符串连接字符串) 在 Microsoft.Web.Deployment.ConnectionStringMatcher.GetStandardConnectionString(字符串 userConnectionString,布尔 isSqlCE) 在 Microsoft.Web.Deployment.SqlInfo.GetBuilder(字符串 connectionString,字符串 errorMessageFormat) 发布部署失败。
似乎 Web Deploy 尝试通过默认的 SqlServer 数据库提供程序解析连接字符串。如何将数据库提供程序切换到 Npgsql 进行部署?
【问题讨论】:
标签: c# postgresql .net-core webdeploy