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.
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.
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...
Hung
compile your code with the /platform:x86 switch
Regards
Pat
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; } } }
Nandika
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/
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?