我创建了一个Windows服务为我管理一些文件。为了进行调试,我编写了一个控制台入口点,所以我的实际服务代码与windows服务是分开的一个类。我使用的是的SQLite DB用流利的NHibernate的到存储设置等Windows服务没有看到文件
当我运行控制台模式,它完美的作品,但尝试启动它不会进程时。我在开始进行调试时发现,当NHibernate尝试创建会话时,即使它存在,它也不能看到数据库文件。
我已经设置了以管理员身份运行的进程,并且还尝试将其作为启用了“Allow access to desktop
”的本地系统帐户运行,但仍不会拾取数据库文件。这意味着NHibernate无法加载文件,因此它会创建一个新文件,并且当我的服务试图从数据库加载数据时,它会失败,因为它加载了空白数据库文件。
配置文件是否在正确的位置?是否存在权限问题,例如,从控制台和服务中的本地用户以管理员身份运行? –
您是否检查服务运行的用户?默认情况下,服务与特殊的服务用户一起运行(不过您可以指定一个不同的服务)。如果它作为服务用户运行,则该用户可能对该文件没有足够的访问权限。 – Zarat
不要勾选“允许访问桌面”。第一步是告诉我们该服务运行的用户是什么。 –