Tôi có một tình huống hơi lạ. Trong phương pháp onstart
của một dịch vụ cửa sổ nếu tôi đặt đoạn mã sau:Đường dẫn tương đối không hoạt động trong dịch vụ windows
File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + "\\TestFile.txt", "Started " + AppDomain.CurrentDomain.BaseDirectory);
nó hoạt động và bên trong file văn bản này được lưu trữ:
Started C:\Users\guser\Documents\Visual Studio 2012\Projects\FreeSpaceControlService\FreeSpaceControlService\bin\Debug\
Các tập tin văn bản được tạo ra bên trong thư mục debug.
Nhưng nếu tôi sử dụng mã ví dụ thay vì ở trên (tại cùng một vị trí):
File.AppendAllText("TestFile.txt", "Started");
Các tập tin văn bản không được tạo ra trong thư mục tương tự như trên. Tại sao nó không được tạo ra trong cùng một thư mục? (Dường như nó đã được tạo ra trong WIndows/System32 bây giờ mà tôi kiểm tra nó - có hai tập tin thực thi không? Tại sao thư mục Debug trả về đầu tiên?)
và nơi bạn thường dùng (trong đó đường dẫn) cài đặt cửa sổ dịch vụ và nhật ký ?
Biến môi trường trong dịch vụ cửa sổ không giống như khi bạn đăng nhập. Chủ sở hữu dịch vụ phải được thay đổi để chạy người dùng thay vì quản trị viên. – jdweng