У меня есть служба Windows VS2005, где мне нужно использовать useUnsafeHeaderParsing в соответствии с документацией из MSDN.
Поскольку это библиотека, используемая в моей службе Windows, у меня нет файла web.config для добавления элемента httpwebrequest и установки для useUnsafeHeaderParsing значения true.
Как мне добиться этого в коде? Я пробовал это и это, но ничего не вышло.





Я не уверен, в чем проблема.
Вы не используете web.config со службой Windows, вы используете App.config (он перемещается в каталог развертывания при компиляции и переименовывается в .config
Я без труда использовал этот параметр в своем App.Config для приложений форм Windows, веб-приложений и многих служб Windows.
Вы можете включить unsafeHeaderParsing программно, если хотите - вот функция, которую я включил в Быстрый и грязный парсер ленты для ее включения - она похожа на некоторые из тех, на которые вы ссылались в своем вопросе:
private static bool SetUseUnsafeHeaderParsing(bool b)
{
Assembly a = Assembly.GetAssembly(typeof(System.Net.Configuration.SettingsSection));
if (a == null) return false;
Type t = a.GetType("System.Net.Configuration.SettingsSectionInternal");
if (t == null) return false;
object o = t.InvokeMember("Section",
BindingFlags.Static | BindingFlags.GetProperty | BindingFlags.NonPublic, null, null, new object[] { });
if (o == null) return false;
FieldInfo f = t.GetField("useUnsafeHeaderParsing", BindingFlags.NonPublic | BindingFlags.Instance);
if (f == null) return false;
f.SetValue(o, b);
return true;
}
Я использовал это в производственном коде, и он отлично работает, независимо от того, в какой среде вы развернуты - пока пространство имен System.Net.Configuration доступно через некоторую сборку в GAC, вам все в порядке.