Wednesday, August 29, 2007

Service Unavailable when deploying an ASMX Service

I deployed an ASMX service to a newly configured machine.
When I open the ASMX, I get the dreaded Service Unavailable error.

looking at the system log, I see this entry:
Event Type: Error
Event Source: DCOM
Event Category: None
Event ID: 10016
Date: 8/29/2007
Time: 8:35:35 AM
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
to the user NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20). This security permission can be modified using the Component Services administrative tool.

For more information, see Help and Support Center at
all of the IIS settings seems fine. When I set the DefaultAppPool to the administrator account, I get this other error:
Event Type: Warning
Event Source: W3SVC
Event Category: None
Event ID: 1057
Date: 8/29/2007
Time: 9:14:43 AM
User: N/A
The identity of application pool 'DefaultAppPool' is invalid, so the World Wide Web Publishing Service can not create a worker process to serve the application pool. Therefore, the application pool has been disabled.

For more information, see Help and Support Center at
Then Dan found this article on MSDN that seems to solve this issue. Basically, you need to add the account that the application pool is running under to the IIS_WPG [IIS Worker Process Group].

Saturday, August 18, 2007

Resetting a BRE policy that has been deployed

During the development and testing of Business Rules Engine policies, you will find yourself having to modify a policy that has already been published and deployed. You can go directly to the SQL server and run this command to reset those policies.

    1 USE BizTalkRuleEngineDb
    2 go
    4 DECLARE @RuleSetID int
    6 SELECT @RuleSetID = nRuleSetID
    7 FROM RE_Ruleset
    8 WHERE strName IN ( 'LoanApproval', 'LoanNotification')
    9 AND nMajor=1 AND nMinor=0
   11 UPDATE RE_Ruleset
   12 SET nStatus = 0
   13 WHERE nRuleSetID = @RuleSetID
   15 DELETE FROM re_deployment_config WHERE nRuleSetID = @RuleSetID
   16 DELETE FROM re_tracking_ID WHERE nRuleSetID = @RuleSetID

To reset a vocabulary that has been published, you will run this other command:

    1 USE BizTalkRuleEngineDb
    2 go
    4 DECLARE @nVocabularyID int
    5 SELECT @nVocabularyID = nVocabularyID
    6 FROM re_vocabulary
    7 WHERE strName = 'Contoso.ValidStates'
    8 AND nMajor=1 AND nMinor=0
   10 UPDATE re_vocabulary
   11 SET nStatus = 0
   12 WHERE nVocabularyID = @nVocabularyID

There will be times, that a particular policy, after you have reset its status on the BRE database, it does not go and clear up from cache. If this is the case, then you will need to stop/start the BRE service:

    1 NET STOP RuleEngineUpdateService
    2 NET START RuleEngineUpdateService

note: [The WROX Professional Biztalk Server 2006 book explained this concept]

Thursday, August 16, 2007

DebugView on Dual Monitors

Dealing with dual monitors sometimes leave some programs on the secondary window. One of the utilities that I use daily for all of my BizTalk development is DebugView.

Since I constantly move from dual monitors (dock station) to a single monitor (laptop display), sometimes I forget to close the DebugView program on my primary monitor. Of course, this means that when I am demo something, I can't get to my DebugView program. It is really frustrating at times, since once you close the application, it saves the coordinates of where the application was last open. arghhhh.... I wish there was an option to turn this off.

Anyways, if you can't find your DebugView on your main window, open the regedit command and go to this hive:


and remove the Settings entry.

Now start DebugView, and it will be back to the center of the screen.

Tuesday, August 14, 2007

Monday, August 13, 2007

How to Publish an ODX on a machine without BTS

Recently I got this question from a client and even thought the answer is no, it is still very confusing when wadding through all of the documentation.

This is the question: Can I deploy/host an orchestration as a web service to a machine that does not have BizTalk Server installed on it?

If you look at the BizTalk documentation, the answer seems a little bit deceiving:

They indicated that there is no Biztalk needed. However, once you keep reading more, it mentioned that you need to have a reverse proxy setup for this setup to work.

Ok, so what if you try deploying the orchestration as a web service, using the Web Services Publishing wizard? Here is the answer:

I took one of the samples from the SDK: C:\Program Files (x86)\Microsoft BizTalk Server 2006\SDK\Samples\Orchestrations\ExposeWebService

I make sure it worked in the localhost. Then I went and published to an Windows 2003 Server that was setup as an application server only [no Biztalk installed]. The web publishing wizard did not report any errors and it completed deploying the service.

Once I tried calling this service, this is what I got:

The error message clearly states: Could not load file or assembly 'microsoft.biztalk.webservices.Serverproxy, .... '. So it is looking for this assembly: Microsoft.BizTalk.WebServices.ServerProxy.dll. This seems obvious that you cannot just copy the missing assembly over to this server without breaking some EULA's ;)

Tuesday, August 07, 2007

HAT Debugging on demmand

In my quest to optimize the resources being used in my laptop, I have been very picky about what services are needed to get my task done. I have a script to turn on/off all of the services that I need. Today I try debugging an orchestration, and I was not getting any information at all on the Health and Activity Tracking (HAT). As it turn out, I had not started this service: BizTalk Server Application Service.

All of my Orchestrations were working fine without this service. Hummm... I know now if I need to run the HAT, then I can turn this feature on/off. And the best thing, is that it when you start up this service, it will pickup all of the instances that have been ran. NICE... ;)

FYI, the service name is BTSSvc$BizTalkServerApplication. I have set its startup type to be manual, and then I have this batch script to turn it on/off:

net start BTSSvc$BizTalkServerApplication
net stop BTSSvc$BizTalkServerApplication

BTW, don't forget to add your login account to the Biztalk Server Administrators group, or you won't be able to attach to the Orchestration in Debugging mode.

Quick Solutions, Inc.

I have been working with Quick Solutions for over a year now, and all I can say is WHOAH.! The people in here are just amazing, down to earth. We are not just another employee, we are owners.! (literally). QSI is big, yet it is still small enough that you can always run into management and they know your name.

Which great power, comes great responsibility (hummm. I can copyright that one...;) One of the great things that QSI (Quick Solutions,Inc.) has is that is likes to take care of his *owners*. In this post-internet era, there are not that many companies that offer perks to their employees.

QSI, has lots of perks. One of the most valuable one is that we hired very talented people, and we are always passionate about technology. We do grok talks on different topics, Tech-nights, we have a very powerful mentoring program, we are always active with the developer community, etc.

The other perks, include things like a week at a Condo in Florida (Sanibel Island), Maid Cleaning services, Cash bonuses, Family outings, etc. Not to mention the open-accounting system, in which every week we get reports on how the company as a whole is doing financially. And not just reports, but actual numbers.! This builds confidence and a sense of ownership.

What a great company to work for.!!!

BTW, we are always looking for passionate people about technology to come and join us. We currently have several positions open, so if you would like to be not just on the cutting edge, but on the BLEEDING edge, drop us a line.