So lösen Sie: "Ausnahme wurde vom Ziel des Aufrufs ausgelöst" C #

9

C #

Jedesmal, wenn ich mein Programm leite, bekomme ich diese Ausnahme:

Aber wenn ich im Debug-Modus laufe, gibt es keine Ausnahme und das Programm funktioniert gut, was kann ich tun?

HINWEIS: Ich verwende invoke () nicht irgendwo im Projekt

BEARBEITEN: Okay, hier ist der Code in den Details: Wenn jemand ProtoBuff benutzen kann und dieses Problem kennt ....

%Vor%

Zeile 97:

%Vor%

Ich verstehe es nicht, was ist los? Muss ich einen anderen Teil des Codes hinzufügen? Vielleicht die Seralizaion?

    
Gilad Naaman 01.10.2010, 11:11
quelle

3 Antworten

27

TargetInvocationException maskiert die wahre Ausnahme, indem es Ihnen sagt, dass es während des Absturzes abgestürzt ist. ein Methodenaufruf ", normalerweise durch something.Invoke .

Was Sie tun müssen, ist die InnerException Eigenschaft der Ausnahmeobjekt (das TargetInvocationException -Objekt), dies gibt Ihnen die tatsächliche Ausnahme wurde geworfen, mit einem nützlicheren Stack-Trace.

    
quelle
4

Sie verwenden Protobuf , um etwas zu deserialisieren, das es nicht versteht. Vermutlich werden Daten serialisiert, die eine andere Version Ihrer Assembly oder Daten verwenden, die von Ihnen nicht serialisiert wurden. Google Protocol Buffers können verwendet werden, um eine Repräsentation Ihres Objekts in einen Stream zu schreiben. Sie können den Stream später deserialisieren, um das Objekt neu zu erstellen. Es ist jedoch wichtig, dass Sie das Objekt auf die gleiche Weise serialisieren und deserialisieren. Wenn Sie nur Abfall in die Deserialisierung füttern, erhalten Sie seltsame Ausnahmen.

Das Problem tritt bei MainForm.cs, Zeile 97 auf.

Wenn Sie nur den Fehler erhalten, wenn Sie im Freigabemodus arbeiten, befindet sich die Datei, die Sie deserialisieren möchten, möglicherweise im Binärverzeichnis und die Datei für den Freigabemodus ist veraltet, dh sie enthält serialisierte Daten eines älteren Version der Daten, die Sie serialisieren.

    
Martin Liversage 01.10.2010 11:20
quelle
0

In meinem Fall verwendete ich MD5-Kryptographie, wo FIPS aktiviert war auf dem Server . Ich habe SHA1 verwendet, um Hash zu berechnen, und es hat für mich funktioniert.

    
Raj kumar 22.10.2015 12:44
quelle

Tags und Links