Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Динамич. код и IIS - потеря сборки
|
|||
|---|---|---|---|
|
#18+
Приветствую братьев по инструменту! Господа, помогите, плиз, с такой необычной проблемой (сеть уже рыл, поиск юзал — нигде такого нет): Есть Web-сервис, в котором динамически компилируется крохотная сборка (всё дело под WinXP+IIS, VS2005, .NET 2.0): CodeDomProvider codeProvider = new CSharpCodeProvider(); CompilerParameters compilerParams = new CompilerParameters(); compilerParams.CompilerOptions = "/target:library"; compilerParams.GenerateExecutable = false; compilerParams.GenerateInMemory = true; compilerParams.IncludeDebugInformation = false; string ClassName = "Evaluator" + RuleID; CompilerResults results = codeProvider.CompileAssemblyFromSource(compilerParams, "class " + ClassName + " { public static int CountPoints(double sum) { return (int)("+expr+"); } }"); Assembly asm = results.CompiledAssembly; return asm.GetType(ClassName);// из этого типа потом делаю вызов Далее я дёргаю сервис, который вызывает метод из этой сборки. И это работает! На моей локальной машине... Но как только загружаю это хозяйство на сервер (Windows Server 2003+SP1), метод вылетает с ошибкой: "System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\WINDOWS\TEMP\3rjnfk4a.dll' (имя каждый раз разное). Наблюдение файломонитором показало, что вызывается внешний csc.exe, который компилирует временный исходник во временный же файл (опа! Вот такая интересная GenerateInMemory = true), который уже просто загружается процессом w3wp.exe; Но самое смешное, что этот w3wp сначала удаляет DLL-ку (и ещё кучу сопутствующего мусора), а потом... снова лезет её загружать! А файлика-то нет! :???: Может дело и не в этом, т.к. локальный IIS (aspnet_wp.exe) тоже его удаляет, но ведь локальный IIS и не пытается его заново загрузить! (пользуется тем, что уже загрузил вначале) Вобщем, объяснил как смог, а Смог был крепким парнем! :) Очень надеюсь на вашу помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2006, 16:28 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=34026511&tid=1389023]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
| others: | 261ms |
| total: | 400ms |

| 0 / 0 |
