<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Nivot Ink - BizTalk</title>
    <link>http://www.nivot.org/</link>
    <description>PowerShell, SharePoint, WCF, WWF, .NET, ASP.NET, Enterprise Computing and babble from Microsoft MVP Oisin Grehan.</description>
    <language>en-us</language>
    <copyright>Oisin Grehan</copyright>
    <lastBuildDate>Tue, 03 Jan 2006 22:05:18 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>oising@gmail.com</managingEditor>
    <webMaster>oising@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.nivot.org/Trackback.aspx?guid=af4569eb-2603-4818-92a3-0ea4b5dfb5dc</trackback:ping>
      <pingback:server>http://www.nivot.org/pingback.aspx</pingback:server>
      <pingback:target>http://www.nivot.org/PermaLink,guid,af4569eb-2603-4818-92a3-0ea4b5dfb5dc.aspx</pingback:target>
      <dc:creator>Oisin Grehan</dc:creator>
      <wfw:comment>http://www.nivot.org/CommentView,guid,af4569eb-2603-4818-92a3-0ea4b5dfb5dc.aspx</wfw:comment>
      <wfw:commentRss>http://www.nivot.org/SyndicationService.asmx/GetEntryCommentsRss?guid=af4569eb-2603-4818-92a3-0ea4b5dfb5dc</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <title>BizTalk Setup Error</title>
      <guid isPermaLink="false">http://www.nivot.org/PermaLink,guid,af4569eb-2603-4818-92a3-0ea4b5dfb5dc.aspx</guid>
      <link>http://www.nivot.org/2006/01/03/BizTalkSetupError.aspx</link>
      <pubDate>Tue, 03 Jan 2006 22:05:18 GMT</pubDate>
      <description>&lt;font color=red&gt;Error 1928. error registering COM+ application. Contact your support
personnel for more information.&lt;/font&gt;
&lt;br&gt;
&lt;center&gt;&lt;i&gt;or&lt;br&gt;
&lt;/i&gt;
&lt;/center&gt;
&lt;font color=red&gt;Error 5003. Regsvcs failed for assembly c:\program files\Microsoft
Biztalk Server 2004\Microsoft.Biztalk.Deployment.dll. Return code 1. (BizTalk SP1)&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
I ran into the above error while installing BizTalk 2004 dev/sdk components onto my
windows xp/sp2 box and spent a few hours debugging the problem and managed to find
a workaround. The problem stems from overly tight default permissions on keys created
under HKLM\software\classes during the install. I have no clue [yet] why this happens,
but the workaround is to run biztalk setup under the localsystem account rather than
an administrator.&lt;br&gt;
&lt;br&gt;
The easiest way you can do this by downloading one of the inimitable &lt;a href="http://www.sysinternals.com/blog/"&gt;Mark
Russinovich&lt;/a&gt;'s tools called &lt;a href="http://www.sysinternals.com/Utilities/PsExec.html"&gt;PsExec&lt;/a&gt; from &lt;a href="http://www.sysinternals.com"&gt;http://www.sysinternals.com&lt;/a&gt; and
run the following command:&lt;br&gt;
&lt;font face='\"courier' new\?&gt;
&lt;br&gt;
c:\&amp;gt; psexec -s -i d:setup&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
where d:setup in this case presumes your biztalk install CD (or path to SP1 installer)
is in drive D: the -s param means run under localsystem, and -i allows setup to interact
with the desktop. Yes, the other option might be to use XP's &lt;i&gt;runas&lt;/i&gt; command,
but I don't know of any easy way of finding localsystem's password ;-)&lt;br&gt;
&lt;br&gt;
I've only tested this by installing the development and sdk components onto a windows
xp sp2 machine with visual studio 2003, since my actual biztalk server &amp;amp; sql db
runs in a virtual server windows 2003 instance on my development box.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Initial Research&lt;/strong&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;p&gt;
After a few hours debugging, I'd narrowed the problem down to a registry permission
problem which causes the MSI execution step in question to fail badly: the step "regsvr32
XLANGByotWrap.dll" fails with 0x80070005 which we all know is "access is denied."&lt;br&gt;
&lt;br&gt;
I used regmon and filemon (again from sysinternals) to monitor the install process
-- I chose minimum install of dev/sdk via custom install -- and noticed that at some
point before the regsvr32 step in question is executed, the following two important
keys are created:&lt;br&gt;
&lt;br&gt;
HKEY_LOCAL_MACHINE\SOFTWARE\ ...&lt;br&gt;
Classes\XLANGWrapBYOT.XLANGWrapByot&lt;br&gt;
HKEY_LOCAL_MACHINE\SOFTWARE\ ...&lt;br&gt;
Classes\XLANGWrapBYOT.XLANGWrapByot.1&lt;br&gt;
&lt;br&gt;
...and this is the killer, because this happens BEFORE the regsvr32 command is executed.
The MSI gives "Administrators" &lt;em&gt;read&lt;/em&gt; perms only (but SYSTEM gets "full control")
on these regkeys, which is why the subsequent regsvr32 step fails, which tries to
register the com server XLANGByotWrap.dll under these keys. You can verify this yourself
by leaving the error dialog open (if you close it, the MSI will roll everything back)
and dropping to the install directory and typing:&lt;br&gt;
&lt;font face='\"courier' new\?&gt;regsvr32 XLANGByotWrap.dll&lt;/font&gt;
&lt;br&gt;
You'll see that it fails with 0x80070005. Go into regedit, change the perms for Adminstrators
to "Full Control" and re-run the command: Success.&lt;br&gt;
&lt;br&gt;
I have no idea why these keys are created pre-registration, and with the incorrect
perms, but it's possible to work around this issue by creating the keys with the correct
perms yourself BEFORE you run setup; export the keys to xlang.reg and reimport them
(after you have finished running the failed setup attempt the first time) via regedit's
File|Import. The next step is change the permissions on both keys so that your own
account is replaced with "administrators" and with "full control."&lt;br&gt;
&lt;br&gt;
So, great stuff. I fire up setup myself, and lo and behold, it successfully makes
it past the previous failure point only to cough up:&lt;br&gt;
&lt;br&gt;
Error 5003. Regsvcs failed for assembly Microsoft.BizTalk.Deployment.dll. Return code
1.&lt;br&gt;
&lt;br&gt;
Argh. So, guessing that this is more of the same malarky, I drop to a cmd prompt and
try to run the command manually (while leaving the error dialog open 
&lt;br&gt;
again) to see what the problem is:&lt;br&gt;
&lt;font face='\"courier' new\?&gt;
&lt;br&gt;
[E:\Applications\Microsoft BizTalk Server 2004] regsvcs Microsoft.BizTalk.Deployment.dll&lt;br&gt;
Microsoft (R) .NET Framework Services Installation Utility Version 1.1.4322.573&lt;br&gt;
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.&lt;br&gt;
&lt;br&gt;
The following installation error occurred:&lt;br&gt;
1: Failed to register assembly 'Microsoft.BizTalk.Deployment, Version=3.0.1.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'.&lt;br&gt;
2: Access to the registry key HKEY_CLASSES_ROOT\Microsoft.BizTalk.Log.LogException
is denied.&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
Yep, it's the registry again. Bizarre. Again, the solution is to create the key yourself
before you run setup. Since &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/hkey_classes_root_key.asp"&gt;HKCR
is a union of HKCU and HKLM&lt;/a&gt;, I had a look for the key under HKEY_LOCAL_MACHINE\Software\Classes
where I found it. I also found a shedload of other keys, again with read-only perms
for Adminstrators. I thought to myself, eh, I could just recreate the single key in
question, but I figured I\'m probably going to get more than a couple of these errors,
so I should export all Microsoft.Biztalk.* keys and recreate them with the proper
perms before running setup again.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#a52a2a&gt;*** and at this point while I considered the pain of exporting
a few hundred registry keys I had the idea of using PSEXEC to run the setup under
the localsystem account ***&lt;/font&gt;
&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
Anyway, I hope this was interesting to someone.&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.nivot.org/aggbug.ashx?id=af4569eb-2603-4818-92a3-0ea4b5dfb5dc" /&gt;</description>
      <comments>http://www.nivot.org/CommentView,guid,af4569eb-2603-4818-92a3-0ea4b5dfb5dc.aspx</comments>
      <category>.NET</category>
      <category>BizTalk</category>
    </item>
  </channel>
</rss>