当应用程序和数据库位于同一个Azure VM

时间:2015-08-04 17:23:45

标签: sql-server azure database-connection connection-string azure-sql-database

我在 Azure 上的虚拟机上发布了一个ASP.NET MVC 5应用程序。 我在同一个虚拟机上也有一个数据库。

应用程序正常,但无法连接到数据库。

我从Azure获得这些信息:

  • 域名=" something.cloudapp.net"
  • 主机名=" sampleName"
  • 虚拟IP地址=" 137.135.123.149"
  • 私有IP地址=" 10.0.0.4"

这是我的连接字符串:

<add name="RepositoryDbConnectionString"
 connectionString="Data Source=137.135.123.149,1433; Database=Codex-Repo-Cloud; User Id=myUser; Password=mypass; MultipleActiveResultSets=True;"
 providerName="System.Data.SqlClient" />

我也尝试过这些连接字符串,到目前为止还没有工作:

connectionString="Data Source=something.cloudapp.net; Database=Codex-Repo-Cloud; User Id=myUser; Password=mypass; MultipleActiveResultSets=True;"

connectionString="Data Source=10.0.0.4; Database=Codex-Repo-Cloud; User Id=myUser; Password=mypass; MultipleActiveResultSets=True;"

connectionString="Server=localhost; Database=Codex-Repo-Cloud; Integrated Security=false; User Id=myUser; Password=myPass;"

注意使用第一个连接字符串,我可以在Visual Studio Server Explorer中远程连接到数据库,我可以实际修改数据。

问题 当SQL数据库和Web应用程序都在同一个Azure虚拟机上时,如何在应用程序中连接到数据库。有任何设置,还是只是我的连接字符串?

3 个答案:

答案 0 :(得分:1)

我对JDBC连接有同样的问题。使用相同的连接字符串,我可以从外部世界连接,但不能从Azure VM环境中连接

这可能有所帮助:https://msdn.microsoft.com/en-us/library/azure/dn133152.aspx

答案 1 :(得分:0)

检查数据库中的以下内容是否配置为azure:

  1. 您在Web Config中使用的用户拥有足够的数据库权限(更改为sysadmin并查看它是否有效,然后更改为特定的用户角色,如果这样做的话)。

  2. 打开SQL Server配置管理器并确保Sql Server网络配置&gt; &#34;数据库名称协议&#34; &GT; TCP / IP已启用。

  3. 右键单击网站文件夹和用于项目的app数据文件夹&gt;属性&gt;安全&gt;用户&gt;添加IIS apppool&#34;网站apppool名称&#34;并授予该用户读写权限。

  4. 确保步骤3也在Database.mdf文件上完成。

  5. 让我知道它是否有效!

    干杯, 维沙尔

答案 2 :(得分:0)

您还可以尝试查看数据库服务器上是否启用了SQL Server身份验证。 (在内部安装时默认禁用)。

为此,您可以从SSMS登录&gt;右键单击数据库服务器&gt;选择&#39;属性&#39;从弹出菜单中>导航到&#39;安全&#39;标签&gt;在&#39;服务器身份验证&#39;选择SQL Server和Windows身份验证模式&#39;。

重新启动服务器后,它应该能够使用SQL Server凭据登录。

谢谢, 路易斯