2009-06-01 40 views

回答

4

正如Lars Truijens所说,写入日志文件需要文件系统权限。默认的本地系统帐户(即,当您未明确设置帐户或登录您的代码时)具有对本地文件系统的完全访问权限,但没有默认的网络访问权限。

FWIW - 我通常将我的服务作为常规Windows应用程序开发,直到逻辑的主要部分启动并运行并保持稳定。使用像SvCom这样的库,可以让您将服务作为常规桌面应用程序或作为服务运行,而无需更改任何代码。

+0

同样的 - 我有两个版本:该服务,并且具有启动服务模块,并使其运行正常形式的独立的应用程序。理想的做泄漏检查等工作。 – mj2008 2009-06-02 09:04:54

2

是,提供用于运行该服务的帐户具有足够的权限来写日志文件。

0

我现在有同样的挑战。我试过这个,但它不起作用,至少对我而言是如此。该帐户有足够的权利,因为该服务可以编写自己的专有日志文件。我打开FullDebugMode并添加了dll,我已经打开LogMemoryLeakDetailToFile,都通过IDE选项。在代码中,我看到编译器看到了正确的区域,例如,当我引发错误时,编译器会报告它。另外我无法调试FastMM代码。如果我放置一个断点,它将被忽略。我已经搜索了我所有的本地硬盘,这个报告可能会被删除,但是这个文件不会被发现。我开始并停止来自'Administration-Services'的服务,一切进展顺利,启动但没有报告。如果我对普通可执行文件执行相同的操作,一切都会顺利。我正在使用FastMM478和Delphi2007。

马克

0

好,我发现了另一个原因,有时你看不到任何输出,日志文件或消息框......

如果不作任何错误,它不会产生任何输出。

因此,为了测试是否FASTMM478作品故意做出错误在你的程序,如:

//创建并以不破坏 testToMakeError:= TStringList.Create; for I:= 0 to 100 do testToMakeError.Add('foobar');

我只是假设我会在某个地方犯了一些错误,并花了一天时间试图找出程序为什么没有给我任何反馈。

马克