我创建了一个功能强大的Fiddler扩展程序。所以我决定添加更多功能,并将用户首选项保存到配置文件中。如果我从自己的目录运行扩展,这非常有用。例如,我导航到C:\ Users \ richa \ Documents \ Fiddler2 \ Scripts,然后运行该应用程序。
然而,当Fiddler从c:\ Programs ...运行时,Fiddler然后从我的用户目录中选择扩展名,它就会失败。我花了一段时间才找到它,因为它无声地失败,在Fiddler Logs中没有任何信息(是的,我提出了详细程度)
我通过将调试器附加到Fiddler来捕获这个...所以当它尝试打开/创建/写入文件时使用System.Configuration失败。
具体这段代码:
if (_Configuration == null)
{
// Get the current configuration file.
_Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
}
// Add the custom section to the application
// configuration file.
if (_Configuration.Sections[nameof(WebHookParameterSection)] == null)
{
_Configuration.Sections.Add(nameof(WebHookParameterSection), _WebHookConfiguration);
// Save the application configuration file.
_WebConfigurationManagement.SaveWebConfigurationParameters();
}
_WebHookConfiguration = _Configuration.GetSection(nameof(WebHookParameterSection)) as WebHookParameterSection;
所以我认为我需要提升权限才能从Fiddler从其安装目录运行的上下文中打开/创建/写入文件。但是,在管理员模式下运行Fiddler并没有帮助。
我的问题是,如何将prefs保存在Fiddler扩展中?
答案 0 :(得分:1)
如果没有扩展程序的代码,很难说究竟发生了什么。
这笔交易是Fiddler通过反思加载扩展。因此,您的扩展程序最终会出现在Fiddler app域中。根据您使用System.Configuration API的方式,您将读取存储在fiddler.exe.config中的设置或尝试修改它。反正你可能真的不想要那样。什么阻止你在运行Fiddler作为管理员时很可能这样做很可能是Windows UAC。