2009-06-01 39 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');

我只是假設我會在某個地方犯了一些錯誤,並花了一天時間試圖找出程序爲什麼沒有給我任何反饋。

馬克