Ошибка использования веб-службы из приложения Winform - “Не удается выполнить программу ...”

StackOverflow https://stackoverflow.com/questions/62268

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня есть приложение winform, которое вызывает веб-службу для проверки наличия обновлений.Это работает в dev, и это также работает везде, где я это пробовал, только не на установленной копии на моем компьютере (которая, оказывается, одинакова в dev).

Ошибка заключается в:

Не удается выполнить программу.Выполняемая команда была "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /noconfig /fullpaths @"C:\Documents и Settings\Giovanni.ДВАЖДЫ-AFSSZ043\Local Settings emp\squ8ooock.cmdline".

Брандмауэр отключен, и я поискал "C:\Documents и настройки \ Giovanni.ДВАЖДЫ-AFSSZ043 \Локальные настройки \ Temp \ squ8ooock.cmdline", но его там нет.Обратите внимание, что каждый раз, когда я пытаюсь использовать веб-службу, файл ".cmdline" отличается, например, при втором запуске это был "dae8rgen.cmdline". Независимо от того, какое у него имя, я никогда не смогу найти этот файл.

Есть какие-нибудь предложения?

Это было полезно?

Решение

Файл ".cmdline" представляет собой автоматически созданный файл, созданный .NET framework.Приложение пытается в режиме реального времени скомпилировать XML-сериализатор, используемый для анализа данных из веб-службы.

Вы убедились, что можете выполнить "csc.exe" из окна командной строки?Даже простой ввод "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe /?" должен выдать вам список опций компилятора (или выдать ошибку, если у вас нет разрешений на его выполнение).

Под какой учетной записью пользователя вы запускаете это приложение и есть ли у него разрешения на выполнение exe-файлов в каталоге Windows?Аналогично, я знаю, вы сказали, что это происходит с установленной копией на вашем компьютере, но возможно ли, что она выполняется из общего сетевого ресурса и получает ограниченные разрешения безопасности на доступ к коду, которые помешали бы ей запускать локальные исполняемые файлы?

Для справки, вот статья KB, показывающая аналогичную ошибку, которая может возникнуть в ASP.NET, когда у учетной записи пользователя недостаточно разрешений.http://support.microsoft.com/kb/315904

Другие советы

У меня была такая же проблема, и я обнаружил, что у меня в некотором роде закончилась память.

После проверки Redhats "ANTS Memory Profiler" я обнаружил, что у меня был большой объем памяти в COM + корней GC.Быстро погуглил, и я оказался здесь: msdn Xmlсериализаторы

Затем я прочитал следующее:

Если вы используете любой из других конструкторов, создается несколько версий одной и той же сборки, которые никогда не выгружаются, что приводит к утечке памяти и снижению производительности.Самое простое решение - использовать один из ранее упомянутых двух конструкторов.В противном случае необходимо кэшировать сборки в хэш-таблице...

После создания хэш-таблицы для сериализаторов моя проблема с утечкой памяти (и низкой производительностью) и полученным в результате сообщением об ошибке, подобным вашему, исчезла.

Я решил ту же проблему с помощью ISSReset

Если AppLocker применен принудительно, пожалуйста, разрешите ниже (добавить как исключение пути)

c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CSC.EXE c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CVTRES.EXE

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top