我一直在开发一个 WCF 服务,它调用 Web 服务,然后调用 sql 服务器。在同一解决方案中进行测试时,一切正常。现在,我已经在 IIS 上托管了 WCF 服务,并且正在尝试从 asp.net Web 应用程序进行服务调用。IIS 服务目前托管在我的本地计算机上。在 SQL Server Management Studio 中连接时,我使用 Windows 身份验证。当我调用 Web 服务时,在调用 SQL 时出现以下错误,因此我假设它不喜欢凭据:
Login failed for user 'MYDOMAIN\MYMACHINENAME$'.
这是我调用 Web 服务的代码。如您所见,我已尝试明确传递我的凭据:
var providerService = new ProviderServices.ProviderService();
providerService.Credentials = new NetworkCredential("myusername", "mypassword", "mydomain");
providerService.UseDefaultCredentials = false;
providerService.CheckProviderExclusion(PPLUser.CurrentProgram.ProgramLabel, ps.No, ps.ProviderName, ps.SocialSecurityNo);
这是异常的内部文本:
用户“PCGUS\BON-0010882$”登录失败。在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔 breakConnection,Action'1 wrapCloseInAction)在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布尔 callerHasConnectionLock,布尔 asyncClose)在 System.Data.SqlClient.TdsParser System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean & dataReady) at System。 System.Data 中的 Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)。
如何配置服务以验证我的 sql server 连接?