sql-server - 如何解决“无法确定服务器名称。它必须作为服务器 dns 名称 (servername.database.windows.net) 的第一段出现”
问题描述
我在 Visual Studio 2017 .NET Framework 4.7.1 中有一个带有身份的 Web 应用程序,它连接到 azure sql server 数据库。提交登录表单后出现错误。异常消息是:“无法确定服务器名称。它必须作为服务器的 dns 名称(servername.database.windows.net)的第一段出现。有些库不发送服务器名称,在这种情况下服务器名称必须作为用户名的一部分 (username@servername)。此外,如果使用两种格式,则服务器名称必须匹配。”
该错误仅出现在 Web 服务器(azure app 服务)中。当我在本地(本地主机)运行它时,它工作正常。
我做了错误消息提示的操作,但是没有用。我对此进行了搜索,但没有找到任何建议或解决方案。
如果我删除登录内容,应用程序能够连接并正常工作,问题似乎是我用来连接身份表的连接字符串。
我已经在 web.config 中尝试过这个连接字符串,但它们都没有奏效:
1.添加name="DefaultConnection" connectionString="Server=tcp:myServer.database.windows.net,1433;Initial Catalog=myDatabase;Persist Security Info=False;User ID=myUser@myServer;Password=myPassword;MultipleActiveResultSets=False ;Encrypt=True;TrustServerCertificate=False" providerName="System.Data.SqlClient"
2. 添加 name="DefaultConnection" connectionString="Data Source=myServer.database.windows.net;Initial Catalog=myDatabase;Integrated Security=False;User Id=myUser;Password=myPassword;MultipleActiveResultSets=True" providerName="System.数据.SqlClient"
解决方案
首先,您是否设置了Allow access to Azrue Service
ON?
请在门户上检查您的 Azrue SQL 数据库防火墙设置:
其他,请参阅:Microsoft Azure SQL 数据库的连接问题疑难解答。
希望这能有所帮助。
推荐阅读
- mysql - 如何使用 Antlr4 的访问者模型在翻译器中添加注释/空格
- html - 为什么我的按钮将我带到页面顶部,为什么它只允许我点击最左边的边缘?
- c++ - char* 和 void* 在所有情况下都可以互换用作缓冲区吗?C++
- flutter - 错误:无法调用需要 const 表达式的非“const”构造函数
- max-msp-jitter - MaxMSP/Arcade 按钮对 HI 对象响应不正确
- java - 仅在成功执行 java 中线程类的 run 方法时调用方法。就像在预销毁逻辑或其他东西中
- laravel - 如何将分页顺序从最后一页反转到第一页
- javascript - 打字稿 - 承诺。异步等待调用依赖于另一个调用
- javascript - 更新 mongodb 上的某些字段并非全部。如何?
- snowflake-cloud-data-platform - 如果使用 UPPER 等功能,则分区扫描会增加