无法使用Web服务登录本地数据库

时间:2012-03-22 09:55:33

标签: c# sql-server web-services

我正在尝试使用也在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)。如果这只是一些新手的错误,我很抱歉,但我刚刚开始使用数据库和网站建设,还有很多需要学习的地方。任何帮助是极大的赞赏。

4 个答案:

答案 0 :(得分:1)

创建使用SQL Server身份验证(SQL Server Management Studio)的SQL Server登录

  

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页面引用该连接字符串而不是??