AccessViolationException выдается при запуске веб-роли Azure в эмуляторе Azure.

Я получаю исключение System.AccessViolationException, возникающее во время выполнения веб-роли Azure (запущенной на эмуляторе Azure, она еще не загружена в Azure), когда выполняется вызов переопределенного метода объекта, когда локальная переменная int имеет значение передается как один из параметров метода. Сообщение об исключении: "Попытка чтения или записи в защищенную память. Это часто указывает на повреждение другой памяти".

Код, из которого выдается исключение, является частью локальной библиотеки, которая использовалась в течение нескольких лет на живых системах (не Azure) без проблем. Часть, что ошибки следующие:

foreach (XmlDataComponent item in this.items)
{
   int index = 0;
   XmlNode node = item.ToXml(dataSet, xmlDocument, this, index);  // Exception thrown when this call is made
   ...
}

XmlDataComponent является базовым классом, когда элемент запуска кода является одним из его производных классов. Метод ToXml() переопределяется в производных классах. Исключение выдается, как только вызывается ToXml().

Проблема в параметре индекса. Если я поменяю это, чтобы использовать явное значение вместо локальной переменной, например

item.ToXml(dataSet, xmlDocument, this, 0)

нет ошибок

Точно так же, если я приведу предмет к его фактическому типу, например

((XmlDataItem)item).ToXml(dataSet, xmlDocument, this, index))

и пометить метод ToXml() в классе XmlDataItem как новый вместо переопределения, ошибок нет.

Я также попытался вызвать библиотеку из консольного приложения, а не из веб-роли с точно такими же данными (т. Е. Все то же самое, кроме работы в веб-роли). Опять же, это не вызвало проблем.

Похоже, что при запуске под эмулятором Azure доступ к локальной переменной в качестве параметра переопределенного метода является проблемой!!!

Я надеюсь, что это проблема только при запуске под эмулятором, однако нам все еще нужно исправить, иначе dev будет сложнее.

Любые предложения или советы будут высоко ценится.

0 ответов

Другие вопросы по тегам