我需要覆盖Internet Explorer中托管的.NET组件的一些设置。我创建了一个iexplore.exe.config文件并将其放在c:\ program files \ internet explorer中。
以下是配置文件:
<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>
不幸的是,IE似乎完全忽略了这一点。即使我在文件中放入了无效文本,也不会记录任何错误。
如果我将它添加到machine.config中,那么相同的配置也可以正常工作,但是如果可能的话我想限制我的覆盖。
我尝试启用IEHostLogFile(参见:http://support.microsoft.com/kb/313892),这给了我一些有趣的条目。它表明正在加载远程配置文件:
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
...
我检查了该配置文件,它没有覆盖system.net部分,所以我仍然可以提供我的覆盖。我可以尝试修改该文件,但是这个解决方案不适用于我,因为我不希望使用此应用程序的所有人受到影响,只是特定的机器。
想法?
答案 0 :(得分:2)
当您将以下内容放入hostig网站时,也许会有所帮助:
<link rel="Configuration" href="your.config"/>
查看以下链接。你很老,但也许这没有改变:
http://msdn.microsoft.com/en-us/library/aa719757(vs.71).aspx
如果这样可以解决问题,您可以考虑如何仅为某些机器添加此功能。
答案 1 :(得分:0)
如果Internet Explorer中托管的应用程序具有配置 文件,该文件的位置在标签中指定 语法如下:
<link rel="ConfigurationFileName" href="location">
在此标记中,location是配置文件的URL。这套 应用程序库。配置文件必须位于 与应用程序相同的网站。
另请查看Dan Hickman在this thread 中的回复。 提供了类似的说明here (请参阅“如何嵌入控件”部分)。所有这些都是关于提供适当的访问权限。