Мы используем Open XML SDK для создания отчета в слове. Однако, если клиентам требуется один и тот же отчет, он делает наш экземпляр IIS зависающим и не может предоставлять отчеты до перезагрузки. Я определил, что ниже код заставляет IIS зависать.Open XML sdk 2.5 сбой нашего экземпляра IIS
using(WordprocessingDocument o = WordProcessesingDocument.Open(stream, true)
{
//some processing
}
Когда есть один клиент просит отчет он работает нормально, но каждый раз, когда более чем один клиент запрашивает отчет он там висит. У кого-нибудь были подобные проблемы или у кого-то хорошее мнение о том, что может быть неправильным? Из нашего журнала видно, что запросы выполняются в разных потоках.
Этот _might_ будет связан с изолированным хранилищем. Если файлы достаточно большие (> 10 МБ), то изолированное хранилище используется System.IO.Packaging (которое используется OpenXML). Изолированное хранилище не является потокобезопасным, что вызывает проблемы. Более подробную информацию можно найти здесь (http://ericwhite.com/blog/announcing-the-release-of-a-new-system-io-packaging-implementation/). В этом случае исправление будет связано с обновлением до версии 2.6 (которое больше не использует изолированное хранилище). – petelids
Спасибо, петели. Модернизация до версии 2.6 позволила решить эту проблему. – Eebo
Не беспокойтесь, вы хотите, чтобы я добавил это как ответ за полноту? – petelids