BizTalk Gurus

Explorer OM is not supported in a 64 bit process. -

rated by 0 users
Not Answered This post has 0 verified answers | 5 Replies | 3 Followers

Top 50 Contributor
35 Posts
dhavalmistry posted on Thu, Jan 8 2009 4:49 AM

Hi All,

I have developed one code (Windows Service) who create dynamically receive location using Microsoft.BizTalk.ExplorerOM.dll API. I tested on my Development server and it works fine.

But When I try to use this service in our production which is 64-bit process it gives me following error.

Explorer OM is not supported in a 64 bit process.  Sad

Could you guys please assist me. What was the problem with Microsoft.BizTalk.ExplorerOM.dll?

How do I solve this issue? 

Do we have other atlernative to create receive location dynamically?

In advance I appreciate your suggestion

Regards,

- Dhaval M.

 

All Replies

replied on Mon, Jan 26 2009 4:33 AM

Hi,

We have the same problem, but didn't get any answer yet even, after reading this one: http://www.modhul.com/2007/08/19/biztalk-explorer-om-not-supported-in-a-64-bit-environment/

but it might help you...

Regards,

Hung

replied on Tue, Jan 27 2009 4:01 AM

compile your code with the /platform:x86 switch

Regards

Pat

 

Top 25 Contributor
67 Posts

I have faced this issue too.

When we compile  with Platform:x86  switch then the application runs on 32 bit host instance not the 64 bit host. Then we can not  get the advantage of 64 bit.

Only option that I found  to use the below . Hope this will help you

// Query for the BizTalk Receive Location.
    
        private const string queryCom= "SELECT * FROM MSBTS_ReceiveLocation";

         string receiveLocationName = string.Empty;

                //Create the WMI search object.
                ManagementObjectSearcher Searcher = new ManagementObjectSearcher();

                // create the scope node so we can set the WMI root node correctly.
                ManagementScope scope = new ManagementScope("root\\MicrosoftBizTalkServer");
                Searcher.Scope = scope;

                // Build a Query to enumerate the MSBTS_ReceiveLocation instances if an argument
                // is supplied use it to select only the matching URL.
                SelectQuery selectQuery = new SelectQuery();

                query.QueryString = queryCom;

                // Set the query for the searcher.
                Searcher.Query = selectQuery;

                // Execute the query and determine if any results were obtained.
                ManagementObjectCollection queryCol = Searcher.Get();

                //Get the Recive Location Name from InboundTransportURL property
                foreach (ManagementBaseObject envVar in queryCol)
                {
                    PropertyDataCollection envVarProperties = envVar.Properties;
                   
                    foreach (PropertyData envVarProperty in envVarProperties)
                    {
                        if ((envVarProperty.Name.Equals("InboundTransportURL")) &&
                            (inboundAddress.Equals(envVarProperty.Value)))
                        {
                            //Set the reciveLocationName from the InboundTransportURL property
                            receiveLocationName = envVar["Name"].ToString();
                            break;
                        }
                    }
                }               

 

 

Regards,

Nandika

Top 10 Contributor
260 Posts
tomasr replied on Fri, Jan 30 2009 6:52 AM

If I remember correctly, the reason for this might be that ExplorerOM depends on some of the ENTSSO assemblies, some of which are unmanaged code (and possibly only available in x86... or the ExplorerOM code simply was not written to automatically use the right platform-specific version, which can be tough).

http://winterdom.com/

Top 50 Contributor
47 Posts
Wonder replied on Wed, Jun 17 2009 10:06 AM

Hi

ExplorerOM is being used by the ESB Guidance 1.0.

Does this mean that ESB Guidance simply cannot be used in a 64 bit environment?

Page 1 of 1 (6 items) | RSS