Windows Service Application中的useUnsafeHeaderParsing

时间:2008-10-28 11:54:15

标签: c#

我有一个VS2005 Windows服务,根据MSDN的文档,我需要使用'useUnsafeHeaderParsing'。

由于这是我的Windows服务中使用的库,我没有web.config来添加httpwebrequest元素并将useUnsafeHeaderParsing设置为true。

我将如何在代码中实现此目的。我尝试了thisthis,但这是不行的。

2 个答案:

答案 0 :(得分:4)

如果您愿意,可以通过编程方式启用unsafeHeaderParsing - 这是我在Quick and Dirty Feed Parser中包含的功能,用于打开它 - 它类似于您在问题中链接的一些功能:

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;
    }

我已经在生产代码中使用它,无论您部署在什么环境中,它都可以正常工作 - 只要可以通过GAC中的某些程序集访问System.Net.Configuration命名空间就可以了

答案 1 :(得分:0)

我不确定是什么问题。

您不使用带有Windows服务的web.config,而是使用App.config(当您编译并重命名为.config时,它会被移动到部署目录中

我已经在我的App.Config中使用了这个设置,用于Windows窗体应用程序,Web应用程序和许多Windows服务。