因为实际需要,我的网站应用的数据库必须用.mdf数据库文件,不能将其直接附加到sqlserver。而sqlserver上本身已经存在有一个数据库,其中有几个表在实时的增加数据,我需要写一个Windows服务,周期性的同步这几个表到我自己的网站应用的数据库相应的表中。
问题就出现了:
网站应用和Windows服务同时运行时候,如何同时连接这个.mdf数据库文件呢。我测试了下。先启动的那个没问题,后启动的那个会报错:XXX.mdf正在被另一个进程使用;尝试附加XXX.mdf失败,已存在同名的数据库........。
请问怎么让这两个程序同时正常运行,同时连接数据库文件呢?

解决方案 »

  1.   

    没直接加载过mdf文件,用程序加载的话,加载到的mdf肯定是以独占的方式被程序持有
    其他程序即便可读也是只读的吧
    最好能都放在实例中
      

  2.   

    是不是说这样连接mdf文件是先把这个文件加到数据库服务器上,然后再去使用?
    如果是这样的话,那么两个程序就可以在连接时候尝试两种连接方法,一种是直接连接文件,另一种是通过服务的方式。也就是说第一个启动的程序使用直接连接的方式,之后的程序就采用服务器连接的方式。
    不知道行不行,晚上试试再说。
      

  3.   

    自己的程序会直接使用mdf文件?这个好像要反向分析mdf的格式。。sql服务程序打开mdf的方式是独占的,别的程序应该无法再访问那些mdf文件的了
      

  4.   

    部署简单、绿色,一般采用本地桌面的数据库就可以了
    最后集中上传、导入统一的mssql系统好了
      

  5.   

    直接用access之类的不是更方便?通过openrowset之类的函数,MSSQL里面也可以访问access文件的的数据