Почему бы не использовать GDI + из ASP.NET - PullRequest
3 голосов
/ 01 апреля 2010

Мне сказали, что использование GDI + из ASP.NET опасно и не определено.

Это потому, что нет гарантии контекста устройства? Может кто-нибудь объяснить?

Какие есть альтернативы?

Вот источник MSDN:

http://msdn.microsoft.com/en-us/library/system.drawing.aspx

Редактировать

Windows и ASP.NET служба ! Так что, возможно, нормальное приложение ASP.NET нормально? Но почему?

Редактировать

Это не Первоапрельская шутка, пожалуйста, не относитесь к ней как таковой.

Ответы [ 2 ]

4 голосов
/ 01 апреля 2010

Есть множество статей по теме, и этот код можно вызвать из .NET. Вам необходимо убедиться, что вы удаляете любые созданные вами объекты, поэтому важно использовать оператор C # с использованием .

Причиной проблем с System.Drawing является то, что она тесно связана с тем, как Windows рисует. Вы должны максимально изолировать код. В Windows Vista и более поздних версиях Microsoft внесла некоторые изменения в архитектуру сервисов, которые предотвратили взаимодействие между рабочим столом и сервисами Windows. ASP.NET технически является службой, если она размещена в IIS (наиболее распространенный случай), поэтому Microsoft добавила примечание. Будущие версии Windows и IIS могут затруднить или сделать невозможным использование System.Drawing из приложения ASP.NET.

Проблема в том, что некоторые люди, возможно, неправильно использовали технологию в других проектах, и теперь эти люди пытаются повлиять на использование вами этой технологии. Один из способов решения этих проблем (недействительных или нет в зависимости от обстоятельств) заключается в создании некоторых показателей производительности и надежности. Затем, когда вы начнете использовать GDI +, продемонстрируйте влияние его использования. Воздействие должно быть приемлемым в большинстве случаев, но это будет зависеть от того, что вы хотите сделать с GDI +.

2 голосов
/ 01 апреля 2010

Существуют проблемы с масштабируемостью при создании дескрипторов окон и ресурсов, которые GDI + использует в веб-среде.

Поместил код ASP.NET GDI + в синглтон, чтобы вызовы были сериализованы и правильно располагали объекты.

Я использовал эту технику для динамически создаваемых изображений без заминки.

...