如何覆盖 Azure 门户中的 Azure Sql 连接
How to override Azure Sql connection in Azure portal
我尝试使用此连接覆盖 Azure 门户中的 connectionstring
:
Server=tcp:server.database.windows.net,1433;Database=mydatabase;User ID=username@server;Password=xxxxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;
它给我一个错误 Keyword not supported: 'server'
当我尝试它时:
metadata=res://*/DataAccess.MyDataBase.csdl|res://*/DataAccess.MyDataBase.ssdl|res://*/DataAccess.MyDataBase.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:server.database.windows.net,1433;initial catalog=MyDataBase;persist security info=True;user id=username@server;password=xxxxxx;MultipleActiveResultSets=True;App=EntityFramework""
给出"Keyword not supported: 'metadata'.
!!
那么 connectionstring
我应该写什么??
我还尝试了屏幕截图中提供的所有连接字符串类型。
第一个连接字符串('Server=..')用于直接连接数据库,不经过Entity Framework。
第二个连接字符串 ('metadata=..') 是一个 Entity Framework 连接字符串。如果您使用的是 EF,则应将 Azure 管理门户中的连接字符串标记为 'Custom' 而不是 'SQL Database'.
好的,我找到了与我的问题相关的 answer,但我也发现了一些东西
所有连接字符串的第一个应该像
metadata=res://*/DataAccess.MyDataBase.csdl|res://*/DataAccess.MyDataBase.ssdl|res://*/DataAccess.MyDataBase.msl;provider=System.Data.SqlClient;provider connection string="Server=tcp:server.database.windows.net,1433;Database=MyDataBase;User ID=username@server;Password=xxxxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"
注意 quotation 应该是 "
而不是 "
,正如 Nick 所说应该是 Custom
.
在控制面板中,数据库面板上有一个显示 "Show database connection strings" 的位置,它为您提供 ADO.Net、PHP、[=22] 的完整数据库连接字符串=] 和 ODBC。这些可以作为起点,我从中添加了 MARS 支持和一个不同的 user/password。
这是我的连接字符串,可以帮助您解决问题。我们使用这个来覆盖 Azure WebApps 控制面板。
Server=tcp:[AZURE_DB_NAME].database.windows.net,1433;Database=[DATABASE_NAME];User ID=[USER_ID];Password=[PASSWORD];Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;MultipleActiveResultSets=True
关于下拉列表,我们将其设置为 SQL 数据库。
想到一件事。您是否尝试过在 VS 调试模式下使用连接字符串来查看会发生什么?您只需将 AzureDB 配置为允许从您的 IP 进行远程连接即可。它可以让您了解您的连接是正确的,但其他东西失败了。
我尝试了 Mohamed Farrag 的解决方案,但遇到了这个错误:
System.ArgumentException: Keyword not supported:
'.ssdl|res://*/dataaccess.MyDataBase.msl;provider'.
从我的连接字符串中删除 DataAccess.
后它起作用了:
metadata=res://*/MyDataBase.csdl|res://*/MyDataBase.ssdl|res://*/MyDataBase.msl;provider=System.Data.SqlClient;provider connection string="Server=tcp:server.database.windows.net,1433;Database=MyDataBase;User ID=username@server;Password=xxxxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"
我尝试使用此连接覆盖 Azure 门户中的 connectionstring
:
Server=tcp:server.database.windows.net,1433;Database=mydatabase;User ID=username@server;Password=xxxxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;
它给我一个错误 Keyword not supported: 'server'
当我尝试它时:
metadata=res://*/DataAccess.MyDataBase.csdl|res://*/DataAccess.MyDataBase.ssdl|res://*/DataAccess.MyDataBase.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:server.database.windows.net,1433;initial catalog=MyDataBase;persist security info=True;user id=username@server;password=xxxxxx;MultipleActiveResultSets=True;App=EntityFramework""
给出"Keyword not supported: 'metadata'.
!!
那么 connectionstring
我应该写什么??
我还尝试了屏幕截图中提供的所有连接字符串类型。
第一个连接字符串('Server=..')用于直接连接数据库,不经过Entity Framework。
第二个连接字符串 ('metadata=..') 是一个 Entity Framework 连接字符串。如果您使用的是 EF,则应将 Azure 管理门户中的连接字符串标记为 'Custom' 而不是 'SQL Database'.
好的,我找到了与我的问题相关的 answer,但我也发现了一些东西
所有连接字符串的第一个应该像
metadata=res://*/DataAccess.MyDataBase.csdl|res://*/DataAccess.MyDataBase.ssdl|res://*/DataAccess.MyDataBase.msl;provider=System.Data.SqlClient;provider connection string="Server=tcp:server.database.windows.net,1433;Database=MyDataBase;User ID=username@server;Password=xxxxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"
注意 quotation 应该是 "
而不是 "
,正如 Nick 所说应该是 Custom
.
在控制面板中,数据库面板上有一个显示 "Show database connection strings" 的位置,它为您提供 ADO.Net、PHP、[=22] 的完整数据库连接字符串=] 和 ODBC。这些可以作为起点,我从中添加了 MARS 支持和一个不同的 user/password。
这是我的连接字符串,可以帮助您解决问题。我们使用这个来覆盖 Azure WebApps 控制面板。
Server=tcp:[AZURE_DB_NAME].database.windows.net,1433;Database=[DATABASE_NAME];User ID=[USER_ID];Password=[PASSWORD];Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;MultipleActiveResultSets=True
关于下拉列表,我们将其设置为 SQL 数据库。
想到一件事。您是否尝试过在 VS 调试模式下使用连接字符串来查看会发生什么?您只需将 AzureDB 配置为允许从您的 IP 进行远程连接即可。它可以让您了解您的连接是正确的,但其他东西失败了。
我尝试了 Mohamed Farrag 的解决方案,但遇到了这个错误:
System.ArgumentException: Keyword not supported: '.ssdl|res://*/dataaccess.MyDataBase.msl;provider'.
从我的连接字符串中删除 DataAccess.
后它起作用了:
metadata=res://*/MyDataBase.csdl|res://*/MyDataBase.ssdl|res://*/MyDataBase.msl;provider=System.Data.SqlClient;provider connection string="Server=tcp:server.database.windows.net,1433;Database=MyDataBase;User ID=username@server;Password=xxxxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"