我已经获得了一个由其他人创建的网站,我现在正在尝试测试它。我可以毫无问题地编译系统,但是当我尝试登录网站时,我收到错误:
"EntityException occured. A first chance exception of type 'System.Data.EntityException' occured in System.Data.Entity.dll. Additional info: The underlying provider failed on Open."
此外,如果我深入挖掘,我会看到Cannot open database \"MyDB\" requested by the login. The login failed. Login failed for user 'name\\owner'.
我在网上看过类似的问题,这似乎是数据库连接的问题?我尝试了多种“解决方案”,其中包括使用connectionString,但没有任何作用。
我认为系统想要做的是连接到位于单独项目的App_Data中的.mdf。无论如何,这是我最初收到的connectionString代码:
add name="NameServiceContext"
connectionString="Server=tcp:qiu5vg5yhv.database.windows.net,1433;Database=MyDB;User ID=MYID;Password=MYPASS;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"
providerName="System.Data.SqlClient"
快问,什么是tcp:......东西?我假设它是以某种方式生成的,但是怎么样?
我试过'修复'这个问题并最终得到这样的结果:
add name="NameServiceContext"
connectionString="data source=./SQLEXPRESS;AttachDbFilename=C:\Users\owner\Documents\MyERP\App_Data\MyDB.mdf;Integrated Security=True;Connect Timeout=30;"
providerName="System.Data.SqlClient"
这两种方法都会出现同样的错误,而且我的想法都不合适。我该如何解决这个问题?
此外,当我通过工具连接到数据库>连接到数据库> MS SQL db文件,我在2个数据源./SQLEXPRESS
和(LocalDB)\v11.0
之间获得了一个选项。我必须包括它们吗?如果是这样,怎么样?
答案 0 :(得分:0)
原始连接字符串是指Microsoft Azure实例。 Azure的典型连接字符串如下所示:
Server=tcp:[serverName].database.windows.net;Database=myDataBase;User ID=[LoginForDb]@[serverName];Password=myPassword;Trusted_Connection=False;Encrypt=True;
您的服务器名称为qiu5vg5yhv.database.windows.net
。很可能你的凭据不正确。
答案 1 :(得分:0)
正如安德鲁所说,你似乎无法访问实际的数据库。只需下载“SQL Server Management Studio”或“SQL Server Management Studio Express”(取决于您使用的数据库版本)并尝试连接。
如果连接成功,请检查是否可以查询项目的数据库。 如果连接失败,请与系统管理员联系以安排访问。
如果您想了解有关connectionstring的更多信息或创建一个,请使用以下网站作为模板:http://www.connectionstrings.com/sql-server/
您可以通过“SQL Server Management Studio”查看数据库的属性来获取必要的数据库详细信息(右键单击并选择“属性” - >“查看连接属性”)
答案 2 :(得分:-1)
我遇到了同样的问题。关键的一步是在这里。 我使用vs 2013更新4。 当您在azure中配置SQL时,它会生成一个连接字符串。