Pavel Novotný

avatar

Email: novotny@pavelnovotny.info
Telefon: +420 732376206
Skype: pavelnovotny.info
Messenger: novotny@pavelnovotny.info
ICQ: 167-272-595
Web: www.pavelnovotny.info


Tags

Kategorie

Navigation

Stránky

    Archiv

    Odkazy

    Programové nastavení UseUnsafeHeaderParsing

    Vzhledem k častému rozpadání spojení při volání některých java webservices serverů je nutné buď vypnout keep alive nebo nastavit useUnsafeHeaderParsing. První metoda výrazným způsobem ovlivní výkon, protože se při každém requestu znovu navazuje tcp spojení, druhá se zase doporučuje pouze u "bezpečných" serverů, u kterých nehrozí nebezpečí útoků pomocí přetečení bufferu.

    V případě projektů, při kterých je i server v naší režii, je určitě lepší cesta nastavením useUnsafeHeaderParsing, to je možné jak v app.config, tak i programově pomocí reflexe:

    Nastavení v app.config:

    <system.net>
    <settings>
    <httpWebRequest useUnsafeHeaderParsing = "true"/>
    </settings>
    </system.net>

    Programové nastavení pomocí reflexe:

            public static bool SetAllowUnsafeHeaderParsing()
            {
                Assembly aNetAssembly = Assembly.GetAssembly(
                  typeof(System.Net.Configuration.SettingsSection));
                if (aNetAssembly != null)
                {
                    Type aSettingsType = aNetAssembly.GetType(
                      "System.Net.Configuration.SettingsSectionInternal");
                    if (aSettingsType != null)
                    {
                        object anInstance = aSettingsType.InvokeMember("Section",
                          BindingFlags.Static | BindingFlags.GetProperty
                          | BindingFlags.NonPublic, null, null, new object[] { });
                        if (anInstance != null)
                        {
                            FieldInfo aUseUnsafeHeaderParsing = aSettingsType.GetField(
                              "useUnsafeHeaderParsing",
                              BindingFlags.NonPublic | BindingFlags.Instance);
                            if (aUseUnsafeHeaderParsing != null)
                            {
                                aUseUnsafeHeaderParsing.SetValue(anInstance, true);
                                return true;
                            }
                        }
                    }
                }
                return false;
            }

    Více zde: http://msdn.microsoft.com/en-us/library/system.net.configuration.httpwebrequestelement.useunsafeheaderparsing.aspx

    Vytvořeno: 16.05.2008 15:16 uživatelem novotny | Komentáře (0) RSS comment feed |
    • Currently 0/5 Stars.
    • 1
    • 2
    • 3
    • 4
    • 5
    Kategorie: .NET