2008-10-24 26 views
6

tôi nhận được một thông báo lỗi khi một tham chiếu .NET Framework 2.0 lắp ráp cố gắng để thực thi các dòng mã sau đây trong một IIS tổ chức dịch vụ WCF:WCF và System.Configuration namespace

Thông báo lỗi:

exePath phải được chỉ định khi không chạy bên trong một độc lập.

Source Code:

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

Có ai kinh nghiệm vấn đề này và họ biết làm thế nào để giải quyết nó?

EDIT: Câu hỏi của tôi là, cách tốt nhất để mở tệp cấu hình (app.config và web.config) từ dịch vụ WCF tương thích ngược với phiên bản .NET 2.0 là gì?

Trả lời

3

tôi đã có thể giải quyết vấn đề cấu hình bằng cách loại bỏ các mã hiện từ câu trả lời provious của tôi và thay thế nó bằng các sau khi triển khai ConfigurationManager:

string MySetting = ConfigurationManager.AppSettings.Get("MyAppSetting"); 

Nếu làm việc cho ứng dụng ASP.NET, ứng dụng WinForms và WCF Services. Tôi vừa thiết kế quá trình triển khai ban đầu cho thư viện lớp của tôi 3 năm trước ....

1

Tùy thuộc vào những gì bạn đang cố gắng hoàn thành. Trên ASP.NET, bạn thường sẽ không sử dụng ConfigurationManager cho những thứ như thế này, nhưng thay vào đó là WebConfigurationManager. Điều đó nói rằng, không có tương đương chính xác, vì, trong thực tế, người dùng/roaming/etc thứ mà OpenExeConfiguration cho phép không có ý nghĩa trên một ứng dụng web.

Bạn cần nó để làm gì?

5

Tham chiếu .NET 2.0 được tham chiếu là một phần của thư viện lớp mà tôi đã phát triển cho thư viện doanh nghiệp của chúng tôi để xử lý các tác vụ phổ biến. Nó được dự định sẽ được sử dụng trong các ứng dụng ASP.NET và WinForm.

Đây là mã nguồn tôi sử dụng để xác định loại tập tin cấu hình để mở:

//Open app.config or web.config file 
if (HttpContext.Current != null) 
    this.m_ConfigFile = WebConfigurationManager.OpenWebConfiguration("~"); 
else 
    this.m_ConfigFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);