2009-07-07 7 views
6

Trong một ứng dụng web tôi có IHttpHandler khi được gọi bắt đầu một ứng dụng thông thường kết nối với cơ sở dữ liệu firebird và trong số những thứ khác phân tích một số ngày từ cơ sở dữ liệu.Process.Start chỉ định văn bản

Khi chạy từ máy tính để bàn, ứng dụng sẽ thực hiện những gì không cần bất kỳ sự cố nào. Nhưng khi nó được bắt đầu từ httpHandler là kết thúc với văn hóa sai và không phân tích ngày tháng. Ive đặt văn hóa i cả web.config và CurrentThread.CurrentCulture nhưng nó vẫn kết thúc với sai. Tất cả điều này được chạy từ một Windows Server 2003 tiếng Anh với nền văn hóa được đặt thành sv-SE.

Vì vậy, có cách nào để bắt đầu một ứng dụng với System.Diganotics.Process.Bắt đầu với một nền văn hóa cụ thể không? Nếu không có quy trình mới bắt đầu sử dụng văn hóa nào?

+0

Bạn có thể giải thích thêm được không, bạn đang cố gắng đạt được điều gì? – Lazarus

Trả lời

2

Tôi không nghĩ có cách xác định văn hóa. Lớp CultureInfo là đặc trưng cho .NET, và theo như tôi biết thì không có khái niệm cụ thể về ứng dụng của một nền văn hóa trong các cửa sổ. Không có cách nào để chỉ định một nền văn hóa bằng cách sử dụng các lớp Process và ProcessStartInfo. Tuy nhiên, tôi tin rằng nền văn hóa có liên quan đến người dùng hiện tại, vì vậy những gì có thể xảy ra, là ứng dụng web của bạn đang chạy trong ngữ cảnh của người dùng khác, vì vậy khi bắt đầu từ ứng dụng web, ứng dụng kia sẽ nhận được ứng dụng của nó. ' cài đặt văn hóa của người dùng. Do đó, bạn có thể thay đổi văn hóa (cài đặt vùng) cho người dùng được sử dụng để chạy ứng dụng web.

Mặt khác, nếu ứng dụng .NET của bạn đang chạy, bạn chỉ có thể mã hóa văn hóa vào đó.

+0

Có, tôi đã có cảm giác rằng nó có thể có với một số thiết lập người dùng để làm. Thật không may nó không phải là một ứng dụng .NET và tôi không thể sửa đổi nó một cách dễ dàng. Vì vậy, câu hỏi còn lại là. Làm cách nào để thay đổi cài đặt khu vực cho tài khoản hệ thống? – Tjelle

+0

Sau một chút nghiên cứu, có vẻ như Locales là bản địa của Windows tương đương với CultureInfo-s của .NET. Mô tả chung tại đây: http://msdn.microsoft.com/en-us/goglobal/bb688174.aspx Tôi không tìm thấy cách nào để thay đổi ngôn ngữ người dùng theo lập trình. Có thể có, vì vậy có lẽ tôi đã không tìm kiếm đủ cứng. Có thể có một số cách để làm điều này thông qua một lệnh dòng lệnh (một câu hỏi ServerFault ứng cử viên?). Nếu bạn sẵn sàng thử nghiệm, bạn có thể thử tạm thời làm cho tài khoản người dùng tương tác (thêm nó vào nhóm Người dùng), đăng nhập và thay đổi cài đặt thông qua giao diện người dùng. –