Το παρακάτω τμήμα κώδικα, αποτελεί μέρος ενός service που εγκαθίσταται με networking credentials,
και τον κατάλληλο local και server accounts πλήρως εναρμονισμένους. Δουλεύει κανονικά και πάει
και γράφει σε ένα δικτυακό log_file ό,τι log_data παράγονται τοπικά. Επίσης, όταν ξεκινάει, πάει και
ελέγχει εάν υπάρχει ένα τοπικό directory για logging, ώστε όταν δεν υπάρχει δικτυακή επικοινωνία
να γράφει τοπικά τα log_data, και εάν δεν υπάρχει το τοπικό αυτό directory το δημιουργεί με τον εξής
κώδικα που επίσης δουλεύει κανονικά:
Try
If Not Directory.Exists("c:\logs\") Then
Directory.CreateDirectory("c:\logs\")
End If
Catch ex As Exception
End Try
Το πρόβλημα είναι ότι παρ' ότι το local directory δημιουργείται κανονικά από το service, το ίδιο
το service, όταν προκύψει δικτυακό πρόβλημα (κάνω disable ας πούμε την σύνδεση), ενώ την
κάνει track την έλλειψη δικτύου, εν τούτοις δεν "γράφει με τίποτα" τα data του στο τοπικό
log_file του local directory. Τι δεν γίνεται καλά; Ευχαριστώ.
Γιάννης Πηλιούνης (jopil@atlascom.gr)
(Δεν μπορώ να κάνω msgbox(ex.tostring) διότι για να πετάξει το msgbox πρέπει να είναι
local_service & interact_with_desktop, αλλά όταν δηλώνεται ως τέτοιο, τότε γράφει
κανονικά σε local mode και έτσι το τι δεν πάει καλά σε local επίπεδο με την δικτυακή
φύση του service enabled, παραμένει άγνωστο.)
Dim fs1 As StreamWriter
If My.Computer.Network.Ping("10.100.200.20") = True Then
' write data to network log_file
Else
Try
If File.Exists("c:\LOGS\USB_Log.txt") = False Then
fs1 = File.CreateText("c:\LOGS\USB_LOG.txt")
fs1.Write(content & vbCrLf)
fs1.Close()
fs1 = Nothing
Else
fs1 = File.AppendText("c:\LOGS\USB_Log.txt")
fs1.Write(content & vbCrLf)
fs1.Close()
fs1 = Nothing
End If
Catch ex As Exception
' MsgBox(ex.ToString)
End Try
End If