Сбой XmlDeserialization на среднем уровне доверия - PullRequest
1 голос
/ 18 июня 2011

Наш сайт размещен на среднем уровне доверия, и хостинг-провайдер отказался предоставить нам полное доверие.Наш код пытается десериализовать код с использованием следующего фрагмента кода, но завершается неудачно с ошибкой отражения разрешения.После отладки я получаю «Ошибка в XML-документе (71, 6)».ошибка.Это работает прекрасно в полном доверии.Пожалуйста, сообщите кому-нибудь, как я могу решить эту проблему, прежде чем мы решим перейти к провайдеру полного доверительного хостинга.

    public static T Decrypt<T>(Stream stream)
    {
        Rijndael rij = Rijndael.Create();
        rij.Key = key;
        rij.IV = iv;
        T obj = default(T); // assigns null if T is a reference type, or 0 (zero) for value types

        using (CryptoStream cs = new CryptoStream(stream, rij.CreateDecryptor(), CryptoStreamMode.Read))
        {
            using (GZipStream zs = new GZipStream(cs, CompressionMode.Decompress))
            {
                XmlSerializer xs = new XmlSerializer(typeof(T));
                obj = (T)xs.Deserialize(zs);

                zs.Close();
            }
            cs.Close();
        }

        return obj;
    }

1 Ответ

1 голос
/ 18 июня 2011

Откройте свойства проекта и установите для параметра «Создать сборку сериализации» значение «Вкл». Это заставит компилятор генерировать сборки сериализации во время компиляции, а не на лету. Просто убедитесь, что развернуты сборки сериализации.

...