我在网上看到过与此相关的点点滴滴,但我仍然无法弄明白。我在IIS和我安装SQL Server 2012的同一台服务器上托管WCF服务。我想在SQL Server数据库上为CRU& D操作提供WCF服务。
我已经读过,因为我在WCF服务中创建连接字符串,我需要将其视为远程SQL Server实例(尽管在同一服务器上)。但是,我正在使用域用户的集成安全性。我见过的最好的答案是:
创建本地用户并使用该本地用户帐户的远程连接字符串:Windows Service unable to connect to SQL Server on localhost
使用远程SQL Server实例(我想创建一个完整的其他SQL Server)。
除此之外,我迷路了。我想知道是否还有其他选择。可能是一个保留我的域用户帐户并创建正确的连接字符串?任何建议都将不胜感激。
顺便谢谢大家!
答案 0 :(得分:1)
嗯,你还没有说现有的连接字符串是什么问题。因此,让我在这个答案中探索所有可能性 -
由于您使用域用户连接到数据库,因此您需要在登录下向SQL Server添加域/本地Windows用户组,以允许该组用户连接到您的服务器。默认情况下,除非明确添加,否则拒绝访问所有人
接下来,您的连接字符串的格式为[J0e3gan]已发布。在WCF服务的web.config文件中,确保您有类似的内容 -
<connectionStrings><add name="DbConnection" connectionString="Data Source=(local);Initial Catalog=MyDataase;Persist Security Info=False;Integrated Security=SSPI;" providerName="System.Data.SqlClient" /></connectionStrings>
在IIS中,设置&#34; Identity&#34;用于您的应用程序池以使WCF服务与您要用于验证/授权WCF的域用户相同 - 数据库连接。
如果您需要更多信息,请与我们联系。
答案 1 :(得分:0)
在连接字符串中没有连接驱动的需要使用远程SQL Server实例或抛弃Windows身份验证。 IIS托管的WCF服务可以正常工作。
您的连接字符串应如下所示:
<add name="DbConnection" connectionString="Data Source=.;Initial Catalog=MyDatabase;Persist Security Info=False;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
此外,您可能会发现ConnectionStrings.com SQL Server 2012 page有帮助。多年来,我发现ConnectionStrings.com对于不同版本的SQL Server,不同客户端等的现实检查连接字符串变体非常有用。