Fehler raubend Web Service von Winform App - „Kann ein Programm nicht ausgeführt werden ...“
-
09-06-2019 - |
Frage
Ich habe eine Winform-Anwendung, die einen Webdienst nach Updates aufruft. Dies funktioniert in dev und es funktioniert auch überall sonst ich es versucht habe, einfach nicht auf die installierte Kopie auf meinem Rechner (die gleich in dev passiert sein).
Der Fehler ist:
Ein Programm kann nicht ausgeführt werden. Der Befehl ausgeführt wird, war "C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ csc.exe" / noconfig / fullpaths @ "C: \ Dokumente und Einstellungen \ Giovanni.DOUBLE-AFSSZ043 \ Lokale Einstellungen \ Temp \ squ8oock .cmdline“.
Die Firewall ist deaktiviert und ich habe für „C: \ Dokumente und Einstellungen \ Giovanni.DOUBLE-AFSSZ043 \ Lokale Einstellungen \ Temp \ squ8oock.cmdline“ sieht, und es ist nicht da. Beachten Sie, dass jedes Mal, wenn ich versuchen, den Web-Service zu verwenden, um die „.cmdline“ Datei unterscheidet, zum Beispiel das zweite Mal, dass ich es lief, es sei ‚dae8rgen.cmdline.‘ Egal welcher Name hat, kann ich nie die Datei finden.
Irgendwelche Vorschläge?
Lösung
Die „.cmdline“ Datei ist eine automatisch generierte Datei, die von der .NET-Framework erzeugt. Die Anwendung versucht, in Echtzeit kompilieren eine XML-Serializer die Daten aus dem Web-Service zu analysieren verwendet.
Haben Sie sich vergewissert, dass Sie ausführen können „csc.exe“ von einer Befehlszeilen-Fenster? Auch nur die Eingabe von "C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ csc.exe /" sollten Sie eine Liste der Compiler-Optionen erhalten (oder sollten Sie einen Fehler geben, wenn Sie es nicht über die Berechtigungen zur Ausführung).
Welches Benutzerkonto ausgeführt werden Sie diese unter, und es Berechtigungen verfügen, um EXE-Dateien im Windows-Verzeichnis ausführen? Ebenso weiß ich gesagt, Sie dies mit der installierten Kopie auf Ihrem Rechner passiert, aber es ist möglich, es ist eine Netzwerkfreigabe Ausführung ab und beschränkt Code Access Security Berechtigungen empfangen, die sie von laufenden lokalen Executables verhindern?
Als Referenz hier ist ein KB-Artikel einen ähnlichen Fehler zeigt, die in ASP.NET auftreten können, wenn das Benutzerkonto nicht genügend Berechtigungen verfügen. http://support.microsoft.com/kb/315904
Andere Tipps
Ich hatte das gleiche Problem und entdecken, dass ich aus der Erinnerung der Art lief.
Redhats „ANTS Memory Profiler“ Nach der Überprüfung fand ich, dass ich in der COM + der GC Wurzeln eine große Menge an Speicher hatte. Eine schnelle Google, und ich fand mich hier: Msdn XmlSerializers
Ich las dann wie folgt vor:
Wenn Sie eines der anderen verwenden Konstrukteure, mehrere Versionen der gleiche Anordnung erzeugt werden und nie entladen, die in einem Speicher ergibt Leck und schlechte Leistung. Das einfachste Lösung ist eine der verwenden zuvor zwei Konstruktoren erwähnt. Andernfalls müssen Sie den Cache Baugruppen in einem Hashtable ...
eine Hash-Tabelle für den Serializer meines Problem eines Speicherleck (und schlechter Leistung) und die daraus resultierenden Fehlermeldung wie das Ihre Nach dem Erstellen weg war.
Ich löste das gleiche Problem mit einem ISSReset
Wenn AppLocker erzwungen wird, bitte unten erlauben (addieren als Pfad Ausnahme)
c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CSC.EXE
c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CVTRES.EXE