I'm trying to deploy our .NET web application using Tridion Delivery API to a local dev server. The machine is x64 and has a proper cd_licenses.xml file and the cd_*_config.xmls are all pointing to its proper location.

We have installed the JDK 1.6_45 and placed the dependency DLLs in the app's bin as per this post: https://stackoverflow.com/questions/13918310/unable-to-load-dll-xmogrt-from-tridion-metadata-query

However, we still get the following error:

An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

Server Error in '/' Application.

An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

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: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

Source Error: 

Line 56:                 }
Line 57:             }
Line 58:             IPage model = GetModelForPage(pageId);
Line 59:             if (model == null) { throw new HttpException(404, "Page cannot be found"); }
Line 60:             this.ViewBag.Page = model;

Source File: C:\Development\Clients\project\project-dd4t\Project\DD4T.Web.Mvc\PageController.cs    Line: 58 

Stack Trace: 

[BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)]
   Codemesh.JuggerNET.NativeInterface.GetJvmLoader(Int32 ctorVersion, String configFile, String vers, String conf, String reserved, Boolean bEnvOverrides, Boolean bDefaultJvm, Int32 traceFacility, Int32 traceLevel, Int32& error) +0
   Codemesh.JuggerNET.JvmLoader.GetJvmLoader(Boolean bEnvOverrides, Boolean bDefaultJvm, TraceFacility fac, TraceLevel level) +246
   Codemesh.JuggerNET.JvmLoader.GetJvmLoader() +64
   Codemesh.JuggerNET.JavaClass.init() +119
   Codemesh.JuggerNET.JavaClass.get_JObject() +51
   Codemesh.JuggerNET.JavaMethod.init() +1652
   Codemesh.JuggerNET.JavaMethod.get_MethodPtr() +61
   Codemesh.JuggerNET.JavaMethod.get_Handle() +80
   Codemesh.JuggerNET.JavaMethod.CallObject(JavaProxy jpo) +422
   Com.Tridion.Broker.Querying.Query..ctor() +101
   Tridion.ContentDelivery.DynamicContent.Query.Query..ctor() +32
   DD4T.Providers.SDLTridion2011sp1.TridionPageProvider.GetContentByUrl(String Url) in C:\Projects\Dynamic Delivery Presentation\dotnet\DD4T.Providers.SDLTridion2011sp1\TridionPageProvider.cs:109
   DD4T.Factories.PageFactory.TryFindPage(String url, IPage& page) in C:\Projects\Dynamic Delivery Presentation\dotnet\DD4T.Factories\PageFactory.cs:131
   DD4T.Mvc.Controllers.TridionControllerBase.GetModelForPage(String PageId) in C:\Projects\Dynamic Delivery Presentation\dotnet\DD4T.Mvc\Controllers\TridionControllerBase.cs

We have checked the default Java version installed by running java -version. It shows the following:

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

We've also verified that the CPU on the machine is x86_64 compatible (AMD Opteron 2374 HE). However, we still this error. Any suggestions?

  • 1
    Welcome to Tridion Stack Exchange. Please be careful not to post identifying information e.g. Client names in stack traces. I have edited for you. Apr 21, 2013 at 22:19
  • Can you go to Event Viewer, into the "Content Manager" section and check if there is any relevant information? Usually, then Tridion tries to load the JVM writes all sort of information, like the location of the used JVM. After that, just make sure that the dll bit-versions of Tridion match the bit-version of the loaded JVM. Apr 22, 2013 at 14:11

1 Answer 1


Verify that you have xmogrt.dll in the bin, is the right version for your CPU (x64) and is not corrupt (perhaps a bad copy/paste from one VM to another?). The proper version should have the size: 1.59 MB (1,668,608 bytes).

Here is a post offering more details about common issues related to Juggernet (xmogrt.dll) http://www.tridiondeveloper.com/tridion-content-delivery-deployment-errors-unable-to-load-dll-xmogrt-and-system-badimageformatexception

  • This is usually the case for us. Either it's missing or the 32 bit version. Apr 22, 2013 at 9:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.