如何在Azure门户中覆盖Azure Sql连接

时间:2015-06-12 11:14:11

标签: entity-framework azure azure-sql-database

我尝试使用此连接覆盖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

此外,我尝试了屏幕截图中提供的所有连接字符串类型。enter image description here

4 个答案:

答案 0 :(得分:2)

好的,我发现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;"

请注意引文应该是"而不是",而且尼克说它应该是Custom

答案 1 :(得分:1)

第一个连接字符串('Server = ..')用于直接连接数据库,而不通过Entity Framework。
第二个连接字符串('metadata = ..')是一个Entity Framework连接字符串。如果您使用EF,则应将Azure管理门户中的连接字符串标记为'自定义',而不是'SQL数据库'

答案 2 :(得分:1)

在控制面板中,数据库面板上有一个位置显示"显示数据库连接字符串"它为您提供ADO.Net,PHP,Java和ODBC数据库的完整连接字符串。这些可以作为起点,我从中添加了MARS支持和不同的用户/密码。

这是我的连接字符串,可以帮到你。我们使用这个在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

关于Drop Down,我们将其设置为SQL Database。

想到一件事。您是否尝试在VS Debug模式下使用连接字符串来查看会发生什么?您只需将AzureDB配置为允许从IP进行远程连接即可。它可以为您提供一些有关您的连接正确但其他内容失败的信息。

答案 3 :(得分:0)

我尝试了Mohamed Farrag的解决方案但得到了这个错误:

  

System.ArgumentException:不支持关键字:   '.ssdl | RES://*/dataaccess.MyDataBase.msl;提供者。

从我的连接字符串中删除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;"