Connected Pawns

January 11, 2012

Awarded IT Services Partner of the Year by SKYCITY

Filed under: BizTalk — Tags: , — mbrimble @ 9:14 am

Mike Clarke, CIO at SKYCITY, presented the award to Brian Lomas & I at an event held at SKYCITY on the evening of the 13th December. Mike Clarke said that the award came as a result of the outstanding work that the DATACOM team has delivered for SKYCITY over the course of this calendar year.

I was pleased to receive recognition for a very interesting BizTalk project that integrated vending machines, car park barriers and door controls with a gaming system.

 

January 9, 2012

Cannot open log for source ‘BizTalk ESB Toolkit 2.1′

Filed under: BizTalk — Tags: , — mbrimble @ 12:09 pm

I have  installed the ESB Management Console on a server that does not have Visual Studio installed and I got this error when I tried to open the ESB Management Console on the local host.

http://social.msdn.microsoft.com/Forums/ar-SA/biztalkesb/thread/16f6fcbe-ffd6-4fbf-a92f-a97726292256 talks about the same error but none of the solutions in this thread solved my problem.

Eventually I discovered that if i added the http://local host to my local intranet sites the ESB management console now displays without error.

Now if I try open site from a browser that is not on the local server, I get challenged and enter the credentials for the same user as above then I get the same error. In this case adding the http://<server> to the intranet or trusted sites does not solve the issue. What is really weird is that if I enter credentials for the administrator who installed the server then the the ESB Management Console is displayed

I decided that I was not seeing the real error because the user cannot write the error to the event log on the web server. I gave this user full access to the event log by running the following from a command prompt where the bolded text is the the SID of my user.

C:\Windows\system32>wevtutil sl Application /ca:O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0×7;;;BA)(A;;0×7;;;SO)(A;;0×3;;;IU)(A;;0×3;;;SU)(A;;0×3;;;S-1-5-3)(A;;0×3;;;S-1-5-33)(A;;0×1;;;S-1-5-32-573)(A;;0×3;;;S-1-5-21-1832726700-257789682-1899323428-1000)

Now I see the following error written to the event log;

Access denied

Source: Microsoft.Practices.ESB.BizTalkOperations.BizTalkQuery

Method: Void .ctor()

Error Source: System.Management

Error TargetSite: Void ThrowWithExtendedInfo(System.Management.ManagementStatus)

Error StackTrace:    at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
at System.Management.ManagementScope.InitializeGuts(Object o)
at System.Management.ManagementScope.Initialize()
at System.Management.ManagementObjectSearcher.Initialize()
at System.Management.ManagementObjectSearcher.Get()
at Microsoft.Practices.ESB.BizTalkOperations.BizTalkQuery.GetMsgboxServerInfo()
at Microsoft.Practices.ESB.BizTalkOperations.BizTalkQuery..ctor()

What permissions or policy am i missing?

http://qa.social.msdn.microsoft.com/Forums/en-US/biztalkesb/thread/2a1519c1-bab3-40fb-a645-a7e54f606b22 describes a workaround where you put the username password in tot he web.config but thus is just hiding the problem. I want to find out what permission or setting is missing.

ESB.BizTalkOperationsService fails to start

Filed under: BizTalk — Tags: , — mbrimble @ 11:53 am

I got the following error;

Event code: 3008
Event message: A configuration error has occurred.
Event time: 9/01/2012 11:14:01 a.m.
Event time (UTC): 8/01/2012 10:14:01 p.m.
Event ID: bb7f2e13c8714bec8168096629000ef0
Event sequence: 1
Event occurrence: 1
Event detail code: 0

Application information:
Application domain: /LM/W3SVC/1/ROOT/ESB.BizTalkOperationsService-2-129705344411112734
Trust level: Full
Application Virtual Path: /ESB.BizTalkOperationsService
Application Path: C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.BizTalkOperationsService\
Machine name: BT10NOVS

Process information:
Process ID: 4072
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE

Exception information:
Exception type: ConfigurationErrorsException
Exception message: Could not load type ‘System.ServiceModel.Activation.HttpModule’ from assembly ‘System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′.
….plus more deleted.

I had been trialling a production install of the ESB Management  Portal on a server that did not have visual studio installed. What i had forgotten was to manually register ASP.Net 4 with IIS. As soon as i ran C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe /i the problem was solved.

January 5, 2012

My map won’t compile – No logical space left to create more user strings.

Filed under: BizTalk — Tags: , — mbrimble @ 9:07 am

A colleague of mine came to me with this problem yesterday and it had me beat for a while. I asked him to validate the map inside visual studio to see what the resultant XSLT looked like. To our horror we discovered that the resultant XSLT was about 48Mb. Now we knew what the problem was but how do you solve it.

If we removed all the links from the map and validated it again the resultant XSLT was still about 48Mb. On opening the XSL we found it was full of default templates. The schema that we where mapping to imported a lot of other schemas. One imported schema in particular added a lot to the default XSL that was generated. It was an enumeration of all the country codes in the world and this type was used in many places on our schema.

How do you stop default generation of XSLT if their a no links in the map? Change the “GenerateDefaultFixedNodes” from “Yes” to “No” as described by Brett ( http://biztalktalk.wordpress.com/2009/06/05/biztalk-mapping-fixing-huge-maps/ ). As promised the resultant XSLT decreased to about 10Kb and above error went away. Thanks Brett.

November 5, 2011

Two things that annoy me about the BizTalk 2010 mapper

Filed under: BizTalk — Tags: , — mbrimble @ 11:27 am

The new mapper in BizTalk 2010 is major improvement on the old BizTalk mapper but a couple of things real bug me.

1. In the old map if you had a greater than functoid on the page and you wanted to change it to say less than all you had to do was drag the less than functoid from the toolbox and drop it on the the greater than functoid. With the new mapper you have to delete the greater than functoid and then add the less than functoid and then reconnect all your links.

2.Nodes expand at unexpected times for example if you paste  a looping functoid to the page and then connect this functoid to another repeating the node the whole node opens and you often lose your place in the map. The auto expanding of nodes gets really annoying when the expanded node had a lot of children. I was wish there was some way to turn this feature off.

If anyone knows how to do this please mail me.

October 8, 2011

BizTalk 2010 mapper–mapping to a schema that has an attribute with an identical name to an element

Filed under: BizTalk — Tags: , , — mbrimble @ 8:33 am

One of my colleagues struck a problem trying to map to a rather nasty schema shown on the right below;

Attribute problem

The user element has an attribute of business-partner-no and there is a child element of the same name. No matter what you do if you try to drag a link to the child element called business-partner-no the link always gets connected to the attribute of the same name.

I am writing about this because I have just spent the morning changing the map to custom XSLT to get around the problem.

Is this by design or is this a bug with the BizTalk 2010 mapper? Does this occur with the mappers in previous versions of BizTalk?

August 31, 2011

BizTalk Map Documenter for 2010

Filed under: BizTalk — Tags: , — mbrimble @ 4:26 pm

I recently had to document a map quickly and decided to try the BizTalk Map Documenter v2.1

The first error I got was “Extension function parameters or return values which have CLR type ‘ConcatString’ are not supported.”. Looking at the comments on the download site I discovered that you have to modify  the parseLinkPath() and getHtmlSpaces() javascript functions within the XSLT to concatenate an empty string to the return value so that the runtime knew to cast it as a string.

After fixing this I got some output but it did not contain content for Constant functoids or links into functoids. John Glisson has been there before and after making the changes that he recommended I got some output for functoids.

I still was not satisfied because the functoid names where missing from the output. I think that the reason why this is happening is because the attribute Functoid_Name is not created in the map files created by BizTalk 2010. I changed the XSLT to look at the Functoid-FID instead and then choose a hard coded value to display. i.e.

<span class=”functoidName”>
            <!–<xsl:value-of select=”$functoidNode/@Functoid-Name” />–>
      <!–Added by Mahindra 2011/08/31–>
      <xsl:choose>
        <xsl:when test=”$functoidNode/@Functoid-FID = 107″>String Concatenate</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 125″>Date and Time</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 127″>ASCII to Character</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 260″>Scripting</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 315″>Equal</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 321″>Logical And</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 375″>Value Mapping</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 424″>Looping</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 474″>Iteration</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 705″>Logical Not</xsl:when>
        <xsl:otherwise>
          <xsl:value-of select=”$functoidNode/@Functoid-FID” />
        </xsl:otherwise>
      </xsl:choose>
     
    </span>

I only added the functoids that i needed to document.

Now i was satisfied. This sure beats documenting the maps by hand.

August 24, 2011

Integration of Oracle CRM on Demand using BizTalk

Filed under: BizTalk — Tags: , , — mbrimble @ 10:32 am

I have just started a project to replace an old CRM system by Oracle CRM on demand. The old system integrates with several systems by exporting and importing either XML or CSV files via a BizTalk interchange.The Oracle CRM on Demand system communicates other systems via web services instead of file imports and exports. New interfaces where required between BizTalk and the Oracle CRM on demand web services.

The first task was to consume the Oracle CRM web service and configure the WCF send adapters. This is what this post will describe.

The custom WSDL’s can be exported from the Oracle CRM on demand application using a wizard.

Consuming this WSDL using the BizTalk WCF Service publishing wizard generates the schemas and binding files for the web service. All the Oracle CRMOD endpoints use WS-security for user authentication and I knew it would take me some time to work out the correct WCF binding to use. I tried several standard WCF binding with no success e.g..

WCF WSHTTP Basic HTTP binding with Transport and message security

clip_image002

Message sent from WCF tracing

<s:Envelope xmlns:s=”http://www.w3.org/2003/05/soap-envelope“><s:Header><a:Action s:mustUnderstand=”1” xmlns:a=”http://www.w3.org/2005/08/addressing“>http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT</a:Action><a:MessageID xmlns:a=”http://www.w3.org/2005/08/addressing“>urn:uuid:11e7f2da-306d-479f-9fa4-90b72de604df</a:MessageID>ActivityId CorrelationId=”677e65ea-fa95-4639-b9bc-120e59604916” xmlns=”http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics“>0ca86810-4c66-4145-8666-4d686ed25b65</ActivityId><a:ReplyTo xmlns:a=”http://www.w3.org/2005/08/addressing“><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand=”1” xmlns:a=”http://www.w3.org/2005/08/addressing“>https://secure-vmsomxmla.crmondemand.com/Services/Integration</a:To><o:Security s:mustUnderstand=”1” xmlns:o=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd“><u:Timestamp u:Id=”_0” xmlns:u=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd“><u:Created>2011-08-14T22:13:41.689Z</u:Created><u:Expires>2011-08-14T22:18:41.689Z</u:Expires></u:Timestamp><o:UsernameToken u:Id=”uuid-eb498020-1e4d-4b2e-a1c1-1d42c33112c1-1” xmlns:u=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd“><o:Username><!– Removed–></o:Username><o:Password><!– Removed–></o:Password></o:UsernameToken></o:Security></s:Header></s:Envelope>

I got the same non descript message back from OracleCRMOD namely;

A message sent to adapter “WCF-Custom” on send port “WcfSendPort_OracleCRMOD_Account_Custom” with URI “https://secure-vmsomxmla.crmondemand.com/Services/Integration” is suspended.
Error details: System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (400) Bad Request. —> System.Net.WebException: The remote server returned an error: (400) Bad Request.
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)
— End of inner exception stack trace —

Finally I used SOAPUI to work out what the correct SOAP header was to send. I discovered that the SOAP header should look like;

Successful SOAPUI

clip_image002[4]

<soapenv:Envelope xmlns:acc=”urn:crmondemand/ws/ecbs/account/” xmlns:quer=”urn:/crmondemand/xml/Account/Query” xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/”><soapenv:Header><wsse:Security soapenv:mustUnderstand=”1″ xmlns:wsse=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd”><wsse:UsernameToken wsu:Id=”UsernameToken-1″ xmlns:wsu=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd”><wsse:Username>DTACOMSV/MARKBRI@DATACOM.CO.NZ</wsse:Username><wsse:Password Type=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText”>NotmyPassword</wsse:Password><wsse:Nonce EncodingType=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary”>uMuUPmiIyuy+psyChG0OMw==</wsse:Nonce><wsu:Created>2011-08-14T20:21:45.905Z</wsu:Created></wsse:UsernameToken></wsse:Security></soapenv:Header><soapenv:Body><acc:AccountQueryPage_Input><quer:ListOfAccount pagesize=”25″><quer:Account searchspec=”[AccountName] LIKE ‘M*’”><quer:AccountName/><quer:ModifiedDate/></quer:Account> </quer:ListOfAccount><acc:LOVLanguageMode>LIC</acc:LOVLanguageMode><acc:ViewMode>Manager</acc:ViewMode></acc:AccountQueryPage_Input></soapenv:Body></soapenv:Envelope>

Next i imported the custom binding that has been created by the BizTalk wizard and started to change the parameters while running a WCF trace. By trial and error I compared the SOAP message from the WCF trace with that of the SOAP UI message. The example below was close but I was still getting that annoying ‘The remote server returned an unexpected response: (400) Bad Request.“ from OracleCRMOD.

WCF Custom binding BizTalk SOAP11WSAddressingAugust2004

clip_image002[6]clip_image004

SOAP trace

<s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/”><s:Header><a:Action s:mustUnderstand=”1″ xmlns:a=”http://schemas.xmlsoap.org/ws/2004/08/addressing”>document/urn:crmondemand/ws/ecbs/account/:AccountQueryPage</a:Action><a:MessageID xmlns:a=”http://schemas.xmlsoap.org/ws/2004/08/addressing”>urn:uuid:c8def1ae-7419-4c23-b338-954a6de815e1</a:MessageID><ActivityId CorrelationId=”ccba640e-7de2-490e-b7d2-643884dc9a5b” xmlns=”http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics”>df5139b9-1dd6-4f72-ae5c-cdb3b616690a</ActivityId><a:ReplyTo xmlns:a=”http://schemas.xmlsoap.org/ws/2004/08/addressing”><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand=”1″ xmlns:a=”http://schemas.xmlsoap.org/ws/2004/08/addressing”>https://secure-vmsomxmla.crmondemand.com/Services/Integration</a:To><o:Security s:mustUnderstand=”1″ xmlns:o=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd”><u:Timestamp u:Id=”_0″ xmlns:u=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd”><u:Created>2011-08-12T04:08:39.481Z</u:Created><u:Expires>2011-08-12T04:13:39.481Z</u:Expires></u:Timestamp><o:UsernameToken u:Id=”uuid-13511941-7a77-4476-8fb1-18b73414e80e-6″ xmlns:u=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd”><o:Username><!– Removed–></o:Username><o:Password><!– Removed–></o:Password></o:UsernameToken></o:Security></s:Header></s:Envelope>

The next thing I did was to remove the addressing by changing the message version to Soap11.

WCF Custom binding BizTalk SOAP11

clip_image002[1]

<s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:u=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd“><s:Header><ActivityId CorrelationId=”46a55bc7-8e6e-4929-935d-0a61eb464c5f” xmlns=”http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics“>bd4ec745-2d98-443c-882d-ba236764b500</ActivityId><o:Security s:mustUnderstand=”1” xmlns:o=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd“><o:UsernameToken u:Id=”uuid-6aacf4ca-43f8-47f5-a06f-178be2d2cf11-1“><o:Username><!– Removed–></o:Username><o:Password><!– Removed–></o:Password></o:UsernameToken></o:Security></s:Header><s:Body><ns0:AccountQueryPage_Input xmlns:ns0=”urn:crmondemand/ws/ecbs/account/“><ns1:ListOfAccount pagesize=”25” xmlns:ns1=”urn:/crmondemand/xml/Account/Query“><ns1:Account searchspec=”[AccountName] LIKE ‘M*’“><ns1:AccountName></ns1:AccountName><ns1:ModifiedDate></ns1:ModifiedDate><ns1:Location></ns1:Location></ns1:Account></ns1:ListOfAccount><ns0:LOVLanguageMode>LIC</ns0:LOVLanguageMode><ns0:ViewMode>Manager</ns0:ViewMode></ns0:AccountQueryPage_Input></s:Body></s:Envelope>

Close but I was still getting that annoying ‘The remote server returned an unexpected response: (400) Bad Request.“ from OracleCRMOD. Finally I changed include timestamp to false and it worked! Thanks to Nick Wong.

clip_image002[7]

The moral of this story is that configuring WCF-custom adapter requires careful analysis using WCF tracing and quite a bit of luck!

August 18, 2011

Please verify that the pipeline strong name is correct and that the pipeline assembly is in the GAC.

Filed under: BizTalk — Tags: , — mbrimble @ 1:35 pm

Ever had this error. I bet you are saying the solution is to to restart the host. I did this with one of my clients recently and found that it did not fix the problem. I got them to check that the assembly was in the GAC and it was. After several false starts i got them to run Fuslogvw.exe (Assembly Binding Log Viewer) and this showed the failed binding shown below;

*** Assembly Binder Log Entry  (18/08/2011 @ 9:59:07 a.m.) ***
The operation failed.
Bind result: hr = 0×80070002. The system cannot find the file specified.
Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  C:\Program Files (x86)\Microsoft BizTalk Server 2010\BTSNTSvc64.exe
— A detailed error log follows.
=== Pre-bind state information ===
LOG: User = zbtsapphost
LOG: DisplayName = OracleInterfacePipeline, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5983166fdea5fae3 (Fully-specified)
LOG: Appbase = file:///C:/Program Files (x86)/Microsoft BizTalk Server 2010/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Program Files (x86)\Microsoft BizTalk Server 2010\BTSNTSvc64.exe.Config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config.
LOG: Post-policy reference: OracleInterfacePipeline, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5983166fdea5fae3
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft BizTalk Server 2010/OracleInterfacePipeline.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft BizTalk Server 2010/OracleInterfacePipeline/WSL.OracleInterfacePipeline.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft BizTalk Server 2010/OracleInterfacePipeline.EXE.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft BizTalk Server 2010/OracleInterfacePipeline/WSL.OracleInterfacePipeline.EXE.
LOG: All probing URLs attempted and failed.

The crtical line is highlighted in red. Why on earth is a BizTalk 2010 server using the net 2.0 framework machine.config file?

I managed to run exactly the same application on another BizTalk 2010 server and captured the assembly binding log. In this case the line highlighted in red was

C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.

and the application worked.

Now I was on to it. I checked the BTSNTSvc.exe.config and found that the following lines were missing

<startup useLegacyV2RuntimeActivationPolicy=”true”>
<supportedRuntime version=”v4.0″ />
</startup>
<runtime>
<assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
<probing privatePath=”BizTalk Assemblies;Developer Tools;Tracking;Tracking\interop” />
</assemblyBinding>
</runtime>
<system.diagnostics>
<system.runtime.remoting>
<channelSinkProviders>
<serverProviders>
<provider id=”sspi” type=”Microsoft.BizTalk.XLANGs.BTXEngine.SecurityServerChannelSinkProvider,Microsoft.XLANGs.BizTalk.Engine” securityPackage=”ntlm” authenticationLevel=”packetPrivacy” />
</serverProviders>
</channelSinkProviders>
<application>
<channels>
<channel ref=”tcp” port=”0″ name=”">
<serverProviders>
<provider ref=”sspi” />
<formatter ref=”binary” typeFilterLevel=”Full”/>
</serverProviders>
</channel>
</channels>
</application>
</system.runtime.remoting>

After addition of this to the config file and restarting the host the problem was solved.

July 15, 2011

xlang/s engine event log entry: Failed while creating a service – BizTalk orchestration won’t start

Filed under: BizTalk — Tags: , — mbrimble @ 9:51 pm

Today I came to use my BizTalk 2010 development machine after not using it for a month or so. To my horror could not get any orchestration to start. I was getting the same behaviour and error that Bill Ousch reported. I tried Bill’s workaround but it did not work.

Now i was stuck. I ran up Fuslogvw.exe (Assembly Binding Log Viewer) and this showed that everything was failing when it tried to look up the Net 2.0.50727 machine.config. Now I am really confused why is BizTalk 2010 going anywhere near this file. I thought BizTalk 2010 used the net 4.0.30319 machine.config.

At this stage I was getting desperate and time was ticking by and I decided to run a repair of my BizTalk 2010 developer Edition from Program and features. This fixed the problem!!!

Older Posts »

Theme: Silver is the New Black. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.