Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用web服务登录到本地数据库_C#_Sql Server_Web Services - Fatal编程技术网

C# 无法使用web服务登录到本地数据库

C# 无法使用web服务登录到本地数据库,c#,sql-server,web-services,C#,Sql Server,Web Services,我正在尝试使用同样在IIS7默认网站上本地运行的web服务访问我的本地数据库。我以前总是使用Windows身份验证,但我读到要使用web服务必须使用SQL Server身份验证,我对此没有经验,但尝试过。我创建了一个新登录名,但当我尝试在连接字符串中使用这些凭据时: connectionString="Server=.\SQLExpress;Database='SponsorChild';Trusted_Connection=True;User Id=abc;Password=abcpass"

我正在尝试使用同样在IIS7默认网站上本地运行的web服务访问我的本地数据库。我以前总是使用Windows身份验证,但我读到要使用web服务必须使用SQL Server身份验证,我对此没有经验,但尝试过。我创建了一个新登录名,但当我尝试在连接字符串中使用这些凭据时:

connectionString="Server=.\SQLExpress;Database='SponsorChild';Trusted_Connection=True;User Id=abc;Password=abcpass" name="SponsorChildDatabase"/>
如果尝试使用web服务,则会出现以下错误:

System.Data.SqlClient.SqlException: Cannot open database "SponsorChild" requested by the login. The login failed.
Login failed for user 'IIS APPPOOL\DefaultAppPool'.

因此,似乎连正确的用户都没有被传递。此外,当我尝试使用SQLManagementStudio登录时,它也会给我一个登录错误()。如果这只是新手犯的错误,我很抱歉,但我只是从数据库和网站建设开始,还有很多东西要学。非常感谢您的帮助

数据库是本地的这一事实可能意味着您自己管理它,设置sql server身份验证的手册也是如此。

请检查以确保:

您的连接字符串中有正确的服务器名称。它真的是本地主机吗?或者您是否安装了SQL Server Express,但它最终变成了(本地)\SQLExpress

您要连接的服务器具有用户桌面\用户登录名(签入对象资源管理器->(您的服务器)->安全->登录)

数据库ASPNETDB有一个基于该登录名的用户,以便您可以使用该数据库(签入对象资源管理器->(您的服务器)->数据库->(您的数据库)->安全->用户)

您的admin.aspx页面确实引用了您给定的连接字符串(ConnectionString1)。管理员文件夹中是否有单独的web.config,例如具有不同的连接字符串,并且Admin.aspx页面引用该连接字符串???

以创建使用SQL Server身份验证的SQL Server登录(SQL Server Management Studio) 1.在SQL Server Management Studio中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹

2.右键单击安全文件夹,指向“新建”,然后单击“登录”

3.在“常规”页面上,在“登录名”框中输入新登录名

4.选择SQL Server身份验证。Windows身份验证是更安全的选项

5.输入登录密码

6.选择应应用于新登录的密码策略选项。通常,强制实施密码策略更安全 选择权

7.单击“确定”


Trusted_Connection=True
使用Windows凭据,而不是提供的用户名和密码。您在数据库中设置的用户不起作用。您需要使用SQL Server身份验证或验证运行服务的Windows帐户

这是一个不使用Windows凭据的示例连接:

Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

由于您的应用程序正在IIS下运行,并且错误表明它试图连接IIS池帐户,因此您的sqlconnection似乎有问题。你能提供连接代码吗?第二个似乎是真的,我有一个用户-“Matt PC\Matt”为什么这会影响其他登录?web服务至少正在打开数据库,它仍然不允许我使用我创建的用户登录,但你的回答解决了我在问题中提出的问题。谢谢:)