I hope it's not too silly a question. I have for some time been using the AMT DTK libraries within windows forms (created in Visual Basic .Net 2005/2008) to do simple things like return the power state of a PC. I would very much like to move to a web based application again using VB.Net to create an ASPX web page. All seems well in my development environment, but when I move to a real IIS6 web server I get errors! It appears that when the IAMT dll's are registered it all goes horribly wrong, am I missing something? Has anyone else managed to do this?
Thanks for the reply, below is the debug text as observed on the server (which is 2003R2 x64 by-the-way). Any help would be terrific.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.BadImageFormatException: Could not load file or assembly 'IntelAmtControls' or one of its dependencies. An attempt was made to load a program with an incorrect format.
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Assembly Load Trace: The following information can be helpful to determine why the assembly 'IntelAmtControls' could not be loaded.
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLMSoftwareMicrosoftFusion!EnableLog].
[BadImageFormatException: Could not load file or assembly 'IntelAmtControls' or one of its dependencies. An attempt was made to load a program with an incorrect format.]
System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +465
System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +181
System.Reflection.Assembly.Load(String assemblyString) +42
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +190
[ConfigurationErrorsException: Could not load file or assembly 'IntelAmtControls' or one of its dependencies. An attempt was made to load a program with an incorrect format.]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +3642024
System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +155
anager.GetReferencedAssemblies(CompilationSection compConfig) +235
System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir) +214
System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors) +57
System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +259
System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +406
System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +125
System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +203
System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +52
System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +50
System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +514
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +274
Version Information:Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433
I'm actually not doing anything complicated, don't even anticipate getting into the realms of SOL/IDER. What happen is, I create a Web Site in Visual Studio (ASP.Net - Visual Basic), it can be just a simple as text on the page (Hello World sort of thing). When I up load to the web server everything is ok (as you would expect). However, as soon as I add references to the IntelAmtControls.dll and IntelAMTStack.dll it runs fine on my machine (running the ASP.Net Development Server) but when I upload to the IIS server it errors as prviously described. I don't even have to add code which calls the dlls, just their presence seems enough to upset it.
Does this help clarify anything?
They are bothe coming from the same DTK version, is that what you mean. I initially started with an older one (can't rememver the version number now), but when it didn't work I updated to the latest from the Intel site (0.35?). Still no joy . But in both instances the dll's in use came from the same source.
I have just checked this morning ant it is indeed the 0.52 version I'm using, sorry my mistake. The installation package I used was Intel_AMT_Developer_Tool_Kit_v0.52x.msi.
I don't think the DTK version would help much in this case. I am stumped on this one since I never used ASP.net and don't have the setup of time to dive into this one. Of course, the full source is available and you could grab all the Intel AMT Stack classes you need and add them to a DLL you know works correctly. Otherwise, we need an ASP.net genious to fix this.
Ylian (Intel AMT Blog)