我正在使用vs 2015中的mvc5应用程序。 每当我尝试从数据库访问项目时,我都会收到错误
用户登录失败' {your_username}'。
当我进入azure portal"允许访问azure服务"设置已打开,列出了我的客户端IP地址。 我认为我的连接字符串配置不正确。我无法弄清楚如何在我的本地机器和azure上正确配置它。
我已将我的网络配置中的连接字符串保存到我以前工作的本地服务器:
在我的web.config
中<add name="IdentityDbContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=C:\Users\UserName\EduSmart_db.Mdf; Initial Catalog=EduSmart_db;Integrated Security=True" providerName="System.Data.SqlClient" />
在Azure门户连接字符串
中Server=tcp:xxxx.database.windows.net,1433;Initial Catalog=Edu;Persist Security Info=False;User ID=Name;Password=Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
答案 0 :(得分:3)
如何判断azure正在使用哪个连接字符串?
Azure使用第二个连接字符串。第一个(localdb)刚刚在本地计算机中使用。服务器无法获得它。您可以在上下文类中将Azure Sql连接字符串名称添加到特定的。
我有没有考虑过不同的问题?
您可以通过以下方式查看:
1. Azure Sql Database中的防火墙设置。哟可以定义一个 IP地址范围(如×。×。×.0到×。×。×.255)而不是只有一个ip 地址。
2.您可以在web.configs文件中查看Azure sql连接字符串 这个。它在我身边很好。
<connectionStrings>
<add name="ConnectionStringName" providerName="System.Data.SqlClient" connectionString="Data Source=tcp:[databasename].database.windows.net,1433;Initial Catalog=[databasename];Integrated Security=False;User Id=[username];Password=[password];Encrypt=True;TrustServerCertificate=False;MultipleActiveResultSets=True" />
</connectionStrings>
如果对Azure Sql使用Code First,则可以在Context类中添加相关的连接字符串名称:
public ApplicationDbContext(): base("ConnectionStringName")
{
}
3.您可以点击工具&gt;连接到数据库&gt; Microsoft SQL 服务器&gt;输入有关Azure的服务器名称,用户名和密码 SQL语句。然后单击测试连接按钮以检查是否可以成功连接。
此外,您可以参考此article以了解如何在本地访问项目中的Azure Sql。
答案 1 :(得分:1)
您只需按照here的说明将您的Web应用和数据库发布到Azure。
要发布您的Web应用程序,请右键单击该项目,然后选择“发布”。在创建网站页面上提供现有的SQL Azure服务器,数据库和登录凭据。
发布时将提供两个数据库连接,其中一个是DBContext。使用向导发布网站时,数据表未发布。
由于您已在SQL Azure上配置了防火墙设置,因此要发布数据库,请转到数据库项目。右键单击该项目,然后选择“发布”。在“发布数据库”对话框中,单击“编辑”并更新有关Azure上数据库的信息。保存配置文件并发布数据库。