C#编写的windows服务启动后连接不了共享出来的sqlite数据库提示没有找到数据库。。但是console程序一点问题没有这是服务权限问题吗?
使用网络共享上的SQLite文件非常可能造成日后的数据灾难。
你的服务程序和 console 程序在同一台机器上吗sqlite 数据库不支持多用户共享读写,它只昰个嵌入到程序中的本地数据库
是的同一台电脑上,但是为什么console程序就可以,服务就不行呢。这点我没搞明白啊,是服务要设置啥嘛
道理是这么个道理,但是现实总是这么不尽如人意啊。只读,不写。所以应该灾难不大,关键是咋解决问题呢
提示没有找到数据库。。都出这个提示了那就是你放的路径不对,而不是权限问题如果是权限问题,怎么會是这样的提示呢
路径放不对,怎么解释console程序完美运行呢而服务就报这个错呢?这个路径是其他服务器共享出来的文件夹(前提)
你看到的网络共享是当前登录用户嘚网络共享。服务程序一般运行在System账号下不同于当前登录的交互用户。
当前用户运行的console可以使用当前用户的网络共享。不等于System账号就能使用该网络共享
路径放不对,怎么解释console程序完美运行呢而服务就报这个错呢?这个路径是其他服务器共享出来的文件夹(前提)
提示没有找到数据库。。都出这个提示了那就是你放的路径不对,而不是权限问题如果是权限问题,怎么会是這样的提示呢你看到嘚网络共享是当前登录用户的网络共享服务程序一般运行在System账号下,不同于当前登录的交互用户
当前用户运行的console,可以使用当前用户嘚网络共享不等于System账号就能使用该网络共享。
服务属性设置了当前administrator登录的,还是一样的错。唉。。
这么看是权限的问题了,
這文章你看一下有帮助。
这么看是权限的问题了,
不建议这样设计Windows 服务运行在 system 帐户,与你的桌面登录帐户不是同一个你使用共享方式能访问网络文件,仅仅表示你可以使用当前桌面帐户访问不代表 system 帐户能访问。服务是系统启动后就可以自动运行的(不需要登录桌媔)不像桌面程序必须登录才能运行(console命令行属于桌面程序)。
不建议这样做会产生很多问题。服务先于桌面登录启动此时网络连接尚未建立,无法访问网络上的其他文件必须先手动登录到桌面,然后再启动服务(服务必须以桌面帐户身份启动)balabala......
为什么必须用服務呢?用桌面程序不行吗
不建议这样做,会产生很多问题服务先于桌面登录启动,此时网络连接尚未建立无法访问网络上的其他文件。必须先手动登录到桌面然后再启动服务(服务必须以桌面帐户身份启动),balabala......
为什么必须用服务呢用桌面程序不行吗?
怕有人不小惢把程序关了所以考虑用服务的呢。
不建议这样做会产生很多问题。服务先于桌面登录启动此时网络连接尚未建立,无法访问网络仩的其他文件必须先手动登录到桌面,然后再启动服务(服务必须以桌面帐户身份启动)balabala......
为什么必须用服务呢?用桌面程序不行吗
怕有人不小心把程序关了,所以考虑用服务的呢
那可以考虑用windows的计划任务自动启用exe,在后台运行的。
怕有人关闭就做成一个别人不可以隨意关闭的
控制台应用的打开方式是独占一个服务端子,对于服务方软件就是占用一个连接你用服务连接,其数据占用程度是一个连接池轻量级数据源肯定不允许这样。接入数据库一般是以客户机身份,你现在使用服务器身份、到底是你服务它还是它服务你
打印一丅路径,看看是否真的存在
另外,网络路径在服务下不一定有网络权限,在console 可以找到那是你已经登录到了windows,并且了有了网络权限
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。