【问题标题】:connection asp.net project to azure database fail将 asp.net 项目连接到 azure 数据库失败
【发布时间】:2017-09-21 04:32:50
【问题描述】:

尝试将 ASP.Net 代码优先项目连接到 Azure。在这个阶段,随着项目的发布,它会在线启动应用程序。我可以浏览页面,但是当我尝试创建新的动态页面时,它给了我一个错误。我的项目在本地运行良好。 我使用 Azure SDK 上传了项目,并使用了来自 azure 的信息,例如服务器名称和连接字符串。这里是:

<connectionStrings>
    <add name="PhClub" connectionString="Server=tcp:phclub.database.windows.net,1433;Initial Catalog=PhClub;Persist Security Info=False;User ID=myloginname for azure;Password=******;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" />
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-PhClub-20170304023453.mdf;Initial Catalog=aspnet-PhClub-20170304023453;Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>

但是,有一件事让我眼前一亮,但我不知道这意味着什么以及如何解决它。在 App_data 文件夹中,我有两个数据库,但在发布窗口中,我看到其中三个: 如您所见,最后一个有问题。 这是它在预览窗口中的外观: 寻求您的建议,因为这是我的第一个个人项目。提前谢谢!

【问题讨论】:

  • 具体是什么错误?
  • 错误。处理您的请求时发生错误。这就是我在页面上得到的全部内容
  • 您需要找出潜在的错误。使您的应用程序能够在浏览器中显示错误详细信息,或向您的应用程序添加适当的日志记录。
  • 正确登录是什么意思?
  • 记录,而不是登录。日志记录意味着当您的应用程序中发生某些事件(例如未处理的异常)时,您会对其进行记录,以便查看发生了什么。查看SerilogNLogSEQElmah 等。

标签: c# asp.net azure


【解决方案1】:

尝试在 PhClub 连接字符串的末尾添加 providerName="System.Data.SqlClient"。

【讨论】:

  • 尝试您的建议。现在发生冲突。
  • 你能举个例子吗?
  • 我的 azure 登录名就像一封电子邮件,比如说 gmail。它给我一个错误,它无法打开登录请求的服务器 gmail....
  • Azure 将通过 IP 限制您的应用程序。您需要通过 Azure 允许您的本地 IP 进入防火墙,请查看此视频youtube.com/watch?v=kDBQYssOOAw
  • watched.i 为当前 usr 创建了一条规则。但是在对象浏览器中,我看不到与 azure 的连接,只有本地连接。这就是整个问题 - 我无法连接到 azure db
【解决方案2】:

如果我们在 web.config 文件中创建&lt;customErrors mode="Off"/&gt;,那么我们可以看到详细的错误消息。我们可以得到更多关于how to troubleshoot a web app in Azure App Service using Visual Studio的信息

我们可以通过以下两种方式对其进行调试:

1.确保dbcontext的连接字符串是azure sql连接字符串

2.确保 Azure sql 可以被 azure 服务访问。(允许默认)。有关 azure sql 防火墙的更多详细信息,请参阅document

【讨论】:

    【解决方案3】:

    尝试忽略前面带有 \ 的 @ 符号,或者像 @@ 一样将其加倍。 因为用 azure @ 分隔 loginName@server。

    另一种方法是在数据库中创建一个新用户/登录名,其用户名不包含@,并在连接字符串中使用该用户。

    【讨论】:

    • 你的意思是像 \name@gmail.com\ ?
    • 不喜欢 name\@gmail.com 或 name@@gmail.com。我不知道它是否有效,但我用手机接听,无法证明。
    • @maxb 我编辑了答案,因为我不知道它是否与连接字符串中用户 ID 中的 @ 一起使用。
    【解决方案4】:

    感谢所有回答。似乎问题出在连接字符串登录凭据中,我删除了 Web 应用程序、服务器和数据库,并使用新的简单登录名重新创建了它。更改了连接字符串中的所有登录名和密码。这样我就摆脱了错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 2021-02-20
      • 2021-07-14
      • 2013-07-04
      • 2020-06-19
      • 2016-02-03
      相关资源
      最近更新 更多