我正在尝试使用也在IIS7中的默认网站上本地运行的Web服务来访问我的本地数据库。我之前总是使用Windows身份验证,但我读到要使用Web服务,您必须使用SQL Server身份验证,我没有经验,但尝试过。我创建了一个新的登录名,但是当我尝试在连接字符串中使用这些凭据时:
connectionString="Server=.\SQLExpress;Database='SponsorChild';Trusted_Connection=True;User Id=abc;Password=abcpass" name="SponsorChildDatabase"/>
并尝试使用网络服务,我收到错误:
System.Data.SqlClient.SqlException: Cannot open database "SponsorChild" requested by the login. The login failed.
Login failed for user 'IIS APPPOOL\DefaultAppPool'.
所以看起来甚至没有正确的用户被传递。此外,当我尝试使用SQL Management Studio登录时,它也会给我一个登录错误(error 18456 with state 38)。如果这只是一些新手的错误,我很抱歉,但我刚刚开始使用数据库和网站建设,还有很多需要学习的地方。任何帮助是极大的赞赏。
答案 0 :(得分:1)
1.在SQL Server Management Studio中,打开对象资源管理器,然后展开要在其中创建新登录名的服务器实例的文件夹。
2.右键单击Security文件夹,指向New,然后单击Login。
3.在“常规”页面上,在“登录名”框中输入新登录名。
4.选择SQL Server身份验证。 Windows身份验证是更安全的选择。
5.输入登录密码。
6.选择应应用于新登录的密码策略选项。通常,强制执行密码策略更安全 选项。
7.单击“确定”。
答案 1 :(得分:1)
Trusted_Connection=True
使用Windows凭据,而不是提供的用户名和密码。您在数据库中设置的用户不起作用。您需要使用SQL Server身份验证或验证运行该服务的Windows帐户。
这是一个不使用Windows凭据的示例连接:
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;
答案 2 :(得分:0)
数据库是本地的这一事实可能意味着您自己管理它,因此here是用于设置sql server身份验证的手册。
答案 3 :(得分:0)
检查以确保:
您的连接字符串中有正确的服务器名称。它真的是localhost吗?或者您是否安装了SQL Server Express,它最终成为(本地)\ SQLExpress而不是
您要连接的服务器具有User-Desktop \ user的登录信息(请在对象资源管理器中检查 - >(您的服务器) - >安全性 - >登录)
数据库ASPNETDB有一个基于该登录的用户,以便您可以使用该数据库(检查对象资源管理器 - >(您的服务器) - >数据库 - >(您的数据库) - >安全 - &gt ;用户)
您的admin.aspx页面确实引用了您给出的连接字符串(ConnectionString1)。是否有任何机会在您的Admin文件夹中单独的web.config,例如有一个不同的连接字符串,而admin.aspx页面引用该连接字符串而不是??