Problems integrating Open MDTK 1.28

Problems integrating Open MDTK 1.28

Hi!

I'd like to integrate Open MDTK into one of our company applications. I generated the "Manageability Stack.dll" from the Source and added it into my C# application. I then tried to connect to the system and get the current power state with this code:

AmtSystem sys = new AmtSystem(this.__Hostname, 16992, this.__Username, this.__Password, false, false);

System.Diagnostics.Debug.WriteLine("[AMT] Connecting to " + sys.HostName);
sys.Connect();
while (sys.State == AmtSystemObjState.Connecting)
{                    
}
if (sys.State == AmtSystemObjState.Connected)
{
	System.Diagnostics.Debug.WriteLine("[AMT] Connected!");
	this.__Response = sys.Remote.GetSystemPowerState().ToString();
	sys.Disconnect();
}
else
{
	this.__Response = "Error on connect;";
}

But the code never enters the connected state. And the strange thing, if I run the code in Release, I get a ton of these (with different field names, sorry for the German):

Eine Ausnahme (erste Chance) des Typs "Intel.Manageability.Exceptions.CimPropertyException" ist in Manageability Stack.dll aufgetreten.
In Intel.Manageability.Exceptions.CimPropertyException ist eine Ausnahme vom Typ "Manageability Stack.dll" aufgetreten, doch wurde diese im Benutzercode nicht verarbeitet.
Zusätzliche Informationen: Logic error:
no such field name: DDNSPeriodicUpdateInterval

The code breaks @CimData.cs in GetField(). I guess it has something to do with the asset management.

What am I doing wrong? The binary software from the installer works, so it has to be my code. Am I missing an assembly?

Kind Regards,
Christian

5 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

I just witnessed something strange:

If I run the App in Release Build Mode from within Visual Studio, I get the above mentioned errors.

If I start the app out of the Release Build folder, MDTK works perfectly and displays the current system status.

So what is the debugger doing different?

Is there a dll that is in the Release build folder that the exe needs that is not in your path when you run from within Visual Studio?  

Interpretation of error:

An exception (first chance) of the type "Intel.Manageability.Exceptions.CimPropertyException 'occurred in Manageability Stack.dll. 
In Intel.Manageability.Exceptions.CimPropertyException an exception of type "Manageability Stack.dll" has occurred, but this was not handled in user code. 
Additional information: Logic error: no such field name: DDNSPeriodicUpdateInterval

Hopefully, Ylian will get a chance to look at this - I will also take a quick look.

Follow me on Twitter: @GaelHof Facebook: https://www.facebook.com/GaelHof

Arg. I wrote most of the DTK and I can't say I have ever ran into this problem. Personnaly, I subscribe to the state change event and call "Connect()". I then start the code I want to run after the connect in the event handler. It's better than calling connect and looping. If you are going to loop, put a Thread.Sleep(100) or something in the loop so not to peg the processor.

I never saw this before: "Additional information: Logic error: no such field name: DDNSPeriodicUpdateInterval". I will probably be of no help here.

Ylian

Here's an update: This time I added the dll from the binary download (mostly because I didn't compile it...), added it to my lib folder, updated the project and rebuild the entire project.

If I run in release config I get what I want, DLL and code work fine.

If I run in debug config I never get to the connected state. 

So the initial error with the dozens of missing fields has gone, but when I write my AMT code I can't really debug it.

Any ideas there?

Lascia un commento

Eseguire l'accesso per aggiungere un commento. Non siete membri? Iscriviti oggi