2012-02-16 46 views
7

Tôi cần ghi đè một số cài đặt cho các thành phần .NET được lưu trữ bên trong Internet Explorer. Tôi đã tạo một tập tin iexplore.exe.config và đặt nó trong c: \ program files \ internet explorer.iexplore.exe.config bị bỏ qua

Dưới đây là tập tin cấu hình:

<configuration> 
    <system.net> 
     <webRequestModules> 
      <remove prefix="http:"/> 
      <remove prefix="https:"/> 
      <add prefix="http:" type="MyHttpRequestCreator, MyRequestModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=bee8bd1bab54ad99" /> 
      <add prefix="https:" type="MyHttpRequestCreator, MyRequestModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=bee8bd1bab54ad99" /> 
     </webRequestModules> 
    </system.net> 
</configuration> 

Thật không may, điều này dường như hoàn toàn bị bỏ qua bởi trình duyệt IE. Ngay cả khi tôi đặt văn bản không hợp lệ trong tệp, không có lỗi nào được ghi lại.

Cấu hình tương tự này hoạt động hoàn hảo nếu tôi thêm nó vào machine.config, nhưng tôi muốn giới hạn ghi đè của mình đối với IE nếu có thể.

Tôi đã thử bật IEHostLogFile (xem: http://support.microsoft.com/kb/313892) và điều này đã cho tôi một số mục thú vị. Nó gợi ý rằng một tập tin cấu hình từ xa đang được nạp:

Microsoft.IE.SecureFactory: Added configuration file: DotNetConfig.xml 
Microsoft.IE.SecureFactory: Application base: http://someserver/dotnet/ 
Microsoft.IE.SecureFactory: Private Bin Path: bin 
Microsoft.IE.IDKey: Created key 
Microsoft.IE.SecureFactory: Trying to create instance of type http://someserver/dotnet/ 
SomeApp.DLL#SomeApp.SomeClass 
... 

Tôi đã kiểm tra rằng tập tin cấu hình, và nó không ghi đè lên phần system.net, vì vậy tôi vẫn sẽ có thể cung cấp ghi đè tôi. Tôi có thể thử sửa đổi tập tin đó, nhưng giải pháp này sẽ không làm việc cho tôi vì tôi không muốn mọi người người sử dụng ứng dụng này để bị ảnh hưởng, chỉ các máy cụ thể.

Ý tưởng?

+0

Chỉ cần kiểm tra ... x86 hoặc x64 OS? (chỉ vì nếu nó là x64, bạn có thể thực sự muốn nó được đặt trong 'C: \ Program Files (x86) \ Internet Explorer') – JimmiTh

+0

Thử nghiệm của tôi đã có trên cả hai máy x86 và x64, và tôi đã đặt cấu hình ở cả hai vị trí trên máy x64 - chỉ để an toàn. IE mặc định là 32 bit, và đó là cái tôi đang khởi chạy, nhưng tôi đã đâm tối vào thời điểm đó. – RMD

Trả lời

2

Có lẽ nó giúp khi bạn đặt sau đây trong đầu các trang web hostig của bạn:

<link rel="Configuration" href="your.config"/> 

Thanh toán liên kết sau. khá ngươi cũ, nhưng có lẽ has not này đã thay đổi:

http://msdn.microsoft.com/en-us/library/aa719757(vs.71).aspx

Nếu điều này giải quyết vấn đề này, bạn có thể suy nghĩ về cách để bao gồm này chỉ dành cho máy nhất định.

+0

Đề xuất thú vị, nhưng tiếc là tôi không "sở hữu" trang web hoặc trang web mục tiêu. – RMD

+0

+1, tôi không tin rằng IE sử dụng iexplore.exe.config: http://msdn.microsoft.com/en-us/library/1xtk877y.aspx – Joe

+0

Sascha có vẻ đúng, mặc dù một số tài liệu gây hiểu nhầm từ Microsoft. – RMD

0

This article notes rằng:

Nếu một ứng dụng tổ chức trong Internet Explorer có một tập tin cấu hình , vị trí của tập tin này được quy định trong một thẻ với sau cú pháp:

<link rel="ConfigurationFileName" href="location">

Trong thẻ này, vị trí là một URL đến tệp cấu hình. Điều này đặt cơ sở ứng dụng. Tệp cấu hình phải nằm trên trang web giống như ứng dụng.

Cũng hài lòng nhìn vào bài trả lời của Dan Hickman trong this thread. Hướng dẫn tương tự được cung cấp here (xem trong phần 'Cách điều khiển nhúng'). Tất cả chúng đều được cung cấp quyền truy cập thích hợp.

Các vấn đề liên quan