我有一个用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
答案 0 :(得分:0)
也许这只是一个用户权限问题。那个Windows服务,¿Windows用户正在使用哪个?
更多:您的Windows防火墙有任何限制吗?也许VStudio拥有所有允许的流量,但是那个Windows服务还没有。