现在我的解决方案下有三个项目DAL(数据层)
主程序(web的)
window 服务
现在我在  window 服务 想从数据库里取东西,所以我引用了 DAL(数据层) 这个项目,用里面的方法取,可是连接字符串写在了 主程序(web的)的web.config里,现在是从 window 服务 执行 DAL(数据层)里的方法,就会出现连接字符串为空的现象。不知道各位听明白了。
有人遇到过这种情况吗,说简单点就是 window 服务 与数据库交互 问题。谢谢各位了。帮忙解决下。

解决方案 »

  1.   

    windows服务照样可以读取webconfig文件啊,难道windows服务不能读取xml文件么?
      

  2.   

    如果window service访问数据需要 web来触发的话,那么可以在触发的时候,把连接字符串传过去,
    如果window service自发的访问的话,那么你可以指定某个文件文件存放连接字符串,web.config其实只是一个xml文件,window service完全可以去读取数据,只是要明确你web.config的位置而已。
      

  3.   

    ◎如果window   service访问数据需要   web来触发的话,那么可以在触发的时候,把连接字符串传过去, 
    如果window   service自发的访问的话,那么你可以指定某个文件文件存放连接字符串,web.config其实只是一个xml文件,window   service完全可以去读取数据,只是要明确你web.config的位置而已。其实包括你和我说的方法都不是最好的办法,按照你说的第一个方法这样是没有意义的,每次触发我得读取一下config或者弄一个全局变量?倒不如将这个过程交由windows服务自己来做也就是和你说的第二种方法类似,但是这样同样涉及到每次触发windows服务读取数据库都要读取webconfig文件,倒不如将全局变量放在windows服务里面
      

  4.   

    怎么不想办法把连接字符传传人DAL层呢。
      

  5.   

    cathy说的对,直接在dal层读取webconfig文件
      

  6.   

    现在 我的window   service是自发的访问的,而且可以读xml文件。如果把连接字符串写到一个xml文件里,然后在读出来。是可以用的,可是我现在不想把连接字符串在写一遍了。想用web.config里的在我的DAL(数据层) 里是用
    public static readonly string connectionString = ConfigurationSettings.AppSettings["Connectionstr"];来获取的。就是上面读的时候为空谢谢各位的支持。
      

  7.   

    上面的写法肯定是错的,对于不同的应用程序,虽然都是dal,也还是有不同的配置文件的,你这样写的话他只读自己的配置文件
    也就是说web得时候都web.config,在window的时候读window的
    实在不想多写一个的话,那就把web.config文件固定把,不过不建议,呵呵
      

  8.   

    恩。我想的也是这样。那我现在有这么一个想法,就是我window服务里面有配置文件吗(象是winfrom 的App.config 或是webfrom的Web.Config) 这样不就从自身的配置文件里读到了吗,可是刚才我试了App.config 和Web.Config ,都不行。读不到。这个你能帮我解决了吗。再次感谢。
      

  9.   

    在windows服务里在添加一个.config问件,只要不与其它的配置文件重名就行!
      

  10.   

    xinghongyang 
    ______________________________
    你理解错误了。我是想找一个
    ConfigurationSettings.AppSettings["Connectionstr"]; 
    能默认识别到的配置文件,就象是winfrom   的App.config   或是webfrom的Web.Config
    与window 服务对应的。
      

  11.   

    都可以的,其实web.config和app.config都是配置文件而已,都有其相应的命名空间来操作。例如web.config用system.web.configration,app.config用system.configration,所以在任何类型的应用程序里面都可以使用这两种配置文件,只要你使用对了命名空间以及相应配置文件的位置,示例代码如下:Configuration configuration = WebConfigurationManager.OpenWebConfiguration(virtualPath);
                    IdentitySection identitySection = (IdentitySection)configuration.GetSection("system.web/identity");
                    identitySection.UserName = name;
                    identitySection.Password = password;
                    configuration.Save();
    virtualPath为配置文件路径
    这里使用的是web.config
    <system.web>
        <identity impersonate="true" userName="administrator" password="" />
    </system.web>
      

  12.   

    windows服务也是个应用程序. 但是它不是用web.config , 而是用同目录下同名的 xxx.exe.config 文件.
    醉翁之意不在答问题,在于发广告也------------------------------------------------ 我们要新招一个JavaScript的开发人员哦.有人有兴趣来吗?? 
    http://www.cnblogs.com/Lostinet/archive/2008/01/31/1059527.html