我刚刚安装了Visual Studio 2017社区。我正在开始一个新的ASP.net WebForms C#项目,但我的连接字符串有问题。这是我到目前为止所做的: 使用单个用户帐户创建WebForms应用程序 将web.config文件中的DefaultConnection更改为
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=s13.example.com;Initial Catalog=DB_9;User ID=DB_9_user;Password=myPwd;Integrated Security=False;"
providerName="System.Data.SqlClient" />
然后我添加一个SqlDataSource并尝试使用DefaultConnection,但是我收到以下错误:
无法为此连接检索数据库架构。请 确保连接设置正确且数据库是 网上。
无法检索此请求的数据 无法连接到服务器(本地) 用户'DB_9_user'登录失败。
接下来,我验证了服务器,用户名和密码是否正确。我在Sql Server Management Studio 2012中使用相同的凭据成功连接到数据库。接下来,我使用Visual Studio 2013 Professional提取旧计算机并在那里重新创建项目。根本没有问题更改连接字符串并在SqlDataSource控件中使用它。 VS 2017社区版有什么不同之处阻碍了我连接数据库的能力吗?
答案 0 :(得分:1)
我没有完整的解决方案,但我注意到了一些可能会有所帮助的事情:
无法连接到服务器(本地)
这不是连接字符串中提到的服务器。这意味着它正在本地工作站上寻找数据库服务器。你确定它使用的是正确的对象,还是正确的字符串?
s13.example.com
这有点吓人,因为它看起来像是一个公共地址。您是否尝试通过互联网直接连接到生产主机?这不好。通常,外部世界无法直接访问数据库服务器。 Web服务器将位于DMZ中,外部用户可以访问Web服务器,Web服务器可以访问内部的DB服务器,但外部用户无法直接访问DB服务器。对于非常小的站点,它们可能是计算机,但这些规则仍应由防火墙强制执行:不对数据库进行公共访问。对于开发,您需要处理数据库的私有副本,而不是在线托管的东西。
答案 1 :(得分:1)
这是我解决此问题的方法。在Visual Studio中,工具 - >连接到数据库。使用与连接字符串相同的凭据和服务器名称。然后,当您创建新的数据源时,请选择SQL Database作为数据源类型。选择数据连接时,您之前创建的连接应该可供选择,而不是使用连接字符串。这将创建一个新的连接字符串,并将添加到您的web.config文件中。这应该与您之前的连接字符串完全相同。如果您选择使用旧连接字符串更新任何内容,则可以使用此连接替换旧连接字符串。
答案 2 :(得分:0)
将以下内容添加到连接字符串中:
Persist Security Info=True;
这对我有用。
答案 3 :(得分:0)
在您的连接字符串中使用Persist Security Info=True;
。
如果您尝试使用vs IDE中的服务器资源管理器或对象资源管理器进行连接,请选中&#34;保存我的密码&#34;添加新数据库连接时的复选框。