AppDomain и assembly из другого Framework'a
От: Аноним  
Дата: 20.09.06 14:10
Оценка:
Hi, skilled.

Помогите, пожалуйста, разобраться с такой проблемой:

Есть приложение на .NET 2.0. Я хочу создать в нем новый домен и загрузить в него сборку из .NET 1.1. Мой код:

AppDomain domain = AppDomain.CreateDomain("myDomain");
Assembly assembly = Assembly.LoadFile(@"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Drawing.Design.dll");


Но судя по версии подгруженной сборки, домен загружает сборку из .NET 2.0. Как это обойти?

Вообще, возможно ли такое?
Re: AppDomain и assembly из другого Framework'a
От: akasoft Россия  
Дата: 20.09.06 18:13
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Вообще, возможно ли такое?


Полагаю, нет. Нужно пересобрать под FW 2.0.
... << RSDN@Home 1.2.0 alpha rev. 655>> SQL Express 2005
Re[2]: AppDomain и assembly из другого Framework'a
От: Аноним  
Дата: 21.09.06 08:30
Оценка:
Здравствуйте, akasoft, Вы писали:

A>Здравствуйте, <Аноним>, Вы писали:


А>>Вообще, возможно ли такое?


A>Полагаю, нет. Нужно пересобрать под FW 2.0.


Вообще проблема состоит не в этом. Как выясняется, под нагрузкой (много параллельных потоков — порядка 50) делают кучу HttpWebRequest — HttpWebResponse запросов. Так вот, под .NET 1.1 все в порядке, все запросы обрабатываются нормально, под .NET 2.0 — порядка 10% запросов вылетают с timeout. Это в тестовом приложении. А в реальном — через три-четыре часа после работы под нагрузкой (LoadTest) ВСЕ запросы вылетают с таймаутами, причем точно такое же соседнее приложение без нагрузки не испытывает таких проблем. Эта проблема появилась после миграции с .NET 1.1 на .NET 2.0. Вот сидим думаем, как это можно решить. Одна из идей было использовать HttpWebRequest — HttpWebResponse из старого фрэймворка.
Re[3]: AppDomain и assembly из другого Framework'a
От: akasoft Россия  
Дата: 21.09.06 08:43
Оценка:
Здравствуйте, <Аноним>, Вы писали:


А>Как выясняется, под нагрузкой (много параллельных потоков — порядка 50) делают кучу HttpWebRequest — HttpWebResponse запросов. Так вот, под .NET 1.1 все в порядке, все запросы обрабатываются нормально, под .NET 2.0 — порядка 10% запросов вылетают с timeout...


Не ты первый, не ты последний. Тут есть решение
Автор: AlexDP
Дата: 20.09.06
и объяснение причины.
... << RSDN@Home 1.2.0 alpha rev. 655>> SQL Express 2005
Re[4]: AppDomain и assembly из другого Framework'a
От: Аноним  
Дата: 21.09.06 15:24
Оценка:
Здравствуйте, akasoft, Вы писали:

A>Здравствуйте, <Аноним>, Вы писали:



А>>Как выясняется, под нагрузкой (много параллельных потоков — порядка 50) делают кучу HttpWebRequest — HttpWebResponse запросов. Так вот, под .NET 1.1 все в порядке, все запросы обрабатываются нормально, под .NET 2.0 — порядка 10% запросов вылетают с timeout...


A>Не ты первый, не ты последний. Тут есть решение
Автор: AlexDP
Дата: 20.09.06
и объяснение причины.


Объяснение, к сожалению, не принимается. Потому как таймауты возникают только в 2.0 и возникают они для любых адресов и типов серверов (хоть ASP.NET на локали, хоть yahoo.com). Как я понимаю это объяснение срабатывает только для ASP.NET серверов.
Re[5]: AppDomain и assembly из другого Framework'a
От: gwg-605 Россия  
Дата: 21.09.06 18:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Объяснение, к сожалению, не принимается. Потому как таймауты возникают только в 2.0 и возникают они для любых адресов и типов серверов (хоть ASP.NET на локали, хоть yahoo.com). Как я понимаю это объяснение срабатывает только для ASP.NET серверов.


ASP.NET здесь совершенно нипричем. Ограничение на два коннекта задается в WinINnet. Это либа через которую работают практичски все продукты MS для доступа по HTTP/HTTPS. Видимо в NET 2.0 изменили работу с WinINet. Похоже HttpWebRequest теряет хендлы на WinINet объекты, поэтому и вылетает по таймауту. Это стандартная ситуация .

В WinINet есть возможность изменить данные настройки(INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER/INTERNET_OPTION_MAX_CONNS_PER_SERVER
) через InternetSetOption. Но как сделать в .NET я не знаю. Также эти установки можно прописать в реестре и тогда они будут устанавливаться автоматичски для всех соединений.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.