内存映射文件和Win服务 – 找不到由服务器创build的文件

我试图创build一个内存映射文件Windows服务,因此它可以容纳很多其他Windows应用程序可以使用的静态数据。

我的问题是,当我开始服务 – 服务可以轻松地读取和写入内存映射文件。 但是,Windows应用程序不能。 他们得到一个文件没有find错误。

使用相同的类读取和写入内存映射文件,在两个Windows应用程序中,我没有问题。 所以,我认为使用内存映射文件是正确的,但还有其他的东西 – 可能在我缺less的Windows服务的领域。

我试图添加一个访问控制,但没有帮助。 仍然没有find文件。

无可否认,我对Windows服务不是很有经验。 我试图创build简单的文件来写我的例外,但他们不是从服务创build。 至于帐户,我使用我自己的Windows帐户(我有限,本地pipe理员权限)。

我没有使用networking服务帐户,因为我需要使用我的用户帐户中embedded的凭据访问数据库。

任何想法都会很棒,因为我已经开始旋转我的轮子了。

您可能需要在@“Global \”前加上MMF名称。 我相信较新版本的Windows在不同的会话下运行服务比其他应用程序。

我看到了以下文章的参考: Windows中的服务和驱动程序中的会话0隔离的影响

您可能还需要修改本地安全策略“创建全局对象”,具体取决于您从哪个用户帐户运行Windows应用程序。