将WCF服务部署为Windows服务时,在连接字符串中无法识别SQL实例名称

时间:2015-04-13 15:08:41

标签: c# web-services wcf windows-services connection-string

我有一个用C#构建的WCF服务,它使用连接字符串来连接数据库。

connectionString =“数据源= AXSLV501 \ SQLA;密码xxx;用户ID = xxx;初始目录= E1DSPXDCDB”

当在Visual Studio 2010中托管WCF服务时,这非常有效,连接正常。

但是,当我在Windows服务中托管WCF服务时,我遇到了问题。该服务托管正常,但数据库变得无法访问。

我可以更改conncetion字符串,更改端口号(1433)的实例名称(\ SQLA),如下所示,它可以正常工作。 “数据源= AXSLV501,1433;密码xxx;用户ID = xxx;初始目录= E1DSPXDCDB”

我很好奇为什么当服务通过Windows服务托管时实例名称不起作用,但是当通过visual studio托管时呢。

除了我的好奇心之外,我还有一个自动生成连接字符串的系统,所以不需要更改它我需要WCF服务来处理实例名称。

我正在使用Windows Server 2008 R2和.net 3.5

1 个答案:

答案 0 :(得分:0)

也许这只是一个用户权限问题。那个Windows服务,¿Windows用户正在使用哪个?

  • 开始 - 运行 - services.msc
  • 找到您的服务 - 右键点击 - 属性 - 用户登录

更多:您的Windows防火墙有任何限制吗?也许VStudio拥有所有允许的流量,但是那个Windows服务还没有。