У меня есть приложение winform, которое вызывает веб-службу для проверки обновлений. Это работает в dev, и это также работает везде, где я пробовал это, только не на установленной копии на моем компьютере (что происходит в dev).
Ошибка:
Невозможно выполнить программу. Выполняемая команда была "C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ csc.exe" / noconfig / fullpaths @ "C: \ Documents and Settings \ Giovanni.DOUBLE-AFSSZ043 \ Local Settings \ Temp \ squ8oock .cmdline ".
Брандмауэр отключен, и я искал "C: \ Documents and Settings \ Giovanni.DOUBLE-AFSSZ043 \ Local Settings \ Temp \ squ8oock.cmdline", но его там нет. Обратите внимание, что каждый раз, когда я пытаюсь использовать веб-службу, файл «.cmdline» меняется, например, когда я запускал его второй раз, это был «dae8rgen.cmdline». Независимо от того, какое у него имя, я никогда не смогу найти этот файл.
Какие-либо предложения?





Файл «.cmdline» - это автоматически сгенерированный файл, созданный платформой .NET. Приложение пытается в реальном времени скомпилировать сериализатор XML, используемый для анализа данных из веб-службы.
Вы проверили, что можете запустить «csc.exe» из окна командной строки? Даже просто набрав "C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ csc.exe /?" должен предоставить вам список параметров компилятора (или должен выдать ошибку, если у вас нет прав на его выполнение).
Под какой учетной записью вы его запускаете и есть ли у него разрешения на выполнение файлов .exe в каталоге Windows? Точно так же я знаю, что вы сказали, что это происходит с установленной копией на вашем компьютере, но возможно ли, что он запускается из общего сетевого ресурса и получает ограниченные разрешения безопасности доступа кода, которые не позволяют запускать локальные исполняемые файлы?
Для справки, вот статья базы знаний, в которой показана аналогичная ошибка, которая может возникнуть в ASP.NET, когда у учетной записи пользователя недостаточно разрешений. http://support.microsoft.com/kb/315904
У меня была такая же проблема, и я обнаружил, что у меня не хватает памяти.
После проверки Redhats "ANTS Memory Profiler" я обнаружил, что у меня большой объем памяти в COM + корней GC. Быстрый поиск в Google, и я оказался здесь: msdn XmlSerializers
Затем я прочитал следующее:
If you use any of the other constructors, multiple versions of the same assembly are generated and never unloaded, which results in a memory leak and poor performance. The easiest solution is to use one of the previously mentioned two constructors. Otherwise, you must cache the assemblies in a Hashtable...
После создания хеш-таблицы для сериализаторов моя проблема с утечкой памяти (и низкой производительностью) и появившимся в результате сообщением об ошибке, подобным вашему, исчезли.
Я решил ту же проблему с IISReset
Если AppLocker применяется принудительно, разрешите ниже (добавить как исключение пути)
c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CSC.EXEc:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CVTRES.EXE