不支持的关键字:'port' - NpgSql
Keyword not supported: 'port' - NpgSql
我在使用 Azure 网络应用程序时遇到以下问题:
发布时出现如下错误:
Keyword not supported: 'port'.
at System.Data.SqlClient.SqlConnectionStringBuilder.GetIndex(String keyword)
at System.Data.SqlClient.SqlConnectionStringBuilder.set_Item(String keyword, Object value)
at System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(String value)
at System.Data.SqlClient.SqlConnectionStringBuilder..ctor(String connectionString)
at Microsoft.Web.Deployment.ConnectionStringMatcher.RemoveExtraSlashFromDataSourceName(String connectionString)
at Microsoft.Web.Deployment.ConnectionStringMatcher.GetStandardConnectionString(String userConnectionString, Boolean isSqlCE)
at Microsoft.Web.Deployment.SqlInfo.GetBuilder(String connectionString, String errorMessageFormat)
appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "Server=xxxxx;Database=xxxxx;Port=5432;User Id=test;Password=xxxxx;Ssl Mode=Require;",
"ProviderName": "Npgsql"
},
Startup.cs:
services.AddDbContext<Context>(options => options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));
您的 PostgreSQL 服务器是在 Azure 中创建的吗?
根据错误提示,端口参数不应该出现在连接字符串中。
如果它是在 azure 中创建的,您的 DefaultConnection 应该类似于以下字符串。
Server=jasonp2testsql.postgres.database.azure.com;Database={your_database};Port=5432;User Id=jasonp2@jasonp2testsql;Password={your_password};Ssl Mode=Require;
你也可以参考这个post。
C# SqlConnection Exception: Keyword not Supported 'Port'
而且the offical document对你有用。
我在使用 Azure 网络应用程序时遇到以下问题:
发布时出现如下错误:
Keyword not supported: 'port'.
at System.Data.SqlClient.SqlConnectionStringBuilder.GetIndex(String keyword)
at System.Data.SqlClient.SqlConnectionStringBuilder.set_Item(String keyword, Object value)
at System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(String value)
at System.Data.SqlClient.SqlConnectionStringBuilder..ctor(String connectionString)
at Microsoft.Web.Deployment.ConnectionStringMatcher.RemoveExtraSlashFromDataSourceName(String connectionString)
at Microsoft.Web.Deployment.ConnectionStringMatcher.GetStandardConnectionString(String userConnectionString, Boolean isSqlCE)
at Microsoft.Web.Deployment.SqlInfo.GetBuilder(String connectionString, String errorMessageFormat)
appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "Server=xxxxx;Database=xxxxx;Port=5432;User Id=test;Password=xxxxx;Ssl Mode=Require;",
"ProviderName": "Npgsql"
},
Startup.cs:
services.AddDbContext<Context>(options => options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));
您的 PostgreSQL 服务器是在 Azure 中创建的吗?
根据错误提示,端口参数不应该出现在连接字符串中。
如果它是在 azure 中创建的,您的 DefaultConnection 应该类似于以下字符串。
Server=jasonp2testsql.postgres.database.azure.com;Database={your_database};Port=5432;User Id=jasonp2@jasonp2testsql;Password={your_password};Ssl Mode=Require;
你也可以参考这个post。
C# SqlConnection Exception: Keyword not Supported 'Port'
而且the offical document对你有用。