Feeds:
Posts
Comments

The task at hand is to create an ESB OnRamp service on IIS 6. I hope this is an error of the past – but incase you don’t have a choice in choosing your IIS version AND windows 2003 – I’ve listed down the potential errors and a resolution

As you try to deploy your OnRamp, most likely you’ll come across the following two errors

Error # 1

Event Type:           Error
Event Source:       System.ServiceModel 3.0.0.0
Event Category:    WebHost
Event ID:                3
Date:                      28/08/2012
Time:                      12:40:03 AM
User:                      MYDOMAIN\btservice
Computer:             zeeWS2003

Description:

WebHost failed to process a request.

 Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/37990405

 Exception: System.ServiceModel.ServiceActivationException: The service ‘/MYCUSTOMWCFAPP.GENERICWCF.ONEWAY/GenericOneWayService.svc’ cannot be activated due to an exception during compilation.  The exception message is: Receive location for address “/MYCUSTOMWCFAPP.GENERICWCF.ONEWAY/GenericOneWayService.svc” not found. (The BizTalk receive location may be disabled.). —> Microsoft.BizTalk.Adapter.Wcf.AdapterException: Receive location for address “/MYCUSTOMWCFAPP.GENERICWCF.ONEWAY/GenericOneWayService.svc” not found. (The BizTalk receive location may be disabled.)

   at Microsoft.BizTalk.Adapter.Wcf.Runtime.ReceiveLocationManager`2.GetEndpointContext(Uri uri)

   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WebServiceHostFactory`3.CreateServiceHost(String constructorString, Uri[] baseAddresses)

   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath)

   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)

   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)

   — End of inner exception stack trace —

   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)

   at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath)

 Process Name: w3wp
Process ID: 5236

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

——————————-

The second error in the event viewer:
Error # 2:

Event Type:           Error
Event Source:       System.ServiceModel 3.0.0.0
Event Category:    WebHost
Event ID:                3
Date:                      28/08/2012
Time:                      12:40:03 AM
User:                      MYDOMAIN\btservice
Computer:            
zeeWS2003

Description:

WebHost failed to process a request.

 Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/37990405

 Exception: System.ServiceModel.ServiceActivationException: The service ‘/MYCUSTOMWCFAPP.GENERICWCF.ONEWAY/GenericOneWayService.svc’ cannot be activated due to an exception during compilation.  The exception message is: Receive location for address “/MYCUSTOMWCFAPP.GENERICWCF.ONEWAY/GenericOneWayService.svc” not found. (The BizTalk receive location may be disabled.). —> Microsoft.BizTalk.Adapter.Wcf.AdapterException: Receive location for address “/MYCUSTOMWCFAPP.GENERICWCF.ONEWAY/GenericOneWayService.svc” not found. (The BizTalk receive location may be disabled.)

   at Microsoft.BizTalk.Adapter.Wcf.Runtime.ReceiveLocationManager`2.GetEndpointContext(Uri uri)

   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WebServiceHostFactory`3.CreateServiceHost(String constructorString, Uri[] baseAddresses)

   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath)

   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)

   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)

   — End of inner exception stack trace —

   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)

   at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath)

 Process Name: w3wp

 Process ID: 5236

 For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

———————————————-

 

Solution:
The only way I could get around it, was  to enable 32 bit  on this (f@#*$n!) 64 bit Windows 2003 machine. Run the following steps on your command prompt (not as a script!  – follow them one after the other):

1.       cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
%SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i

2.       cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

3.       Make sure that the status of ASP.NET version 2.0.50727 (32-bit) is set to Allowed in the Web service extension list in Internet Information Services Manager.
MSDN Page: http://support.microsoft.com/kb/894435

4.       cd C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation
ServiceModelReg.exe –i

5.       As a last resort, delete the receive location in BizTalk and recreate it

6.       Make sure the service has rights to access the receive location

I hope this solves it !

I believe Visual Studio 2010 was the latest and greatest (compared to VS2008 and prior). Well, after a clean installation of VS2010, as I tried to launch the program I received the following error  (on a dialog box)

Error:

SetSite failed for package [Microsoft.Practices.RecipeFramework and a dialog box Object reference not set to an instance of an object

The above doesn’t explain much !. I tried running Visual Studio from a command prompt using the log switch
devenv.exe /log
This logged the activity trace of launching Visual Studio under …\AppData\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xml

On reading the error log, I noticed the following two lines:

SetSite failed for package [Visual Studio Component Model Host Package]
SetSite failed for package [Microsoft.VisualStudio.Labs.SolutionNavigatorPackage,

Etc

… and this time something in the event viewer:

Faulting application name: devenv.exe, version: 10.0.30319.1, time stamp: 0x4ba1fab3
Faulting module name: ntdll.dll, version: 6.1.7601.17725, time stamp: 0x4ec49b60
Exception code: 0xc0000374
Fault offset: 0x000c380b
Faulting process id: 0x11f8
Faulting application start time: 0x01cd60b0bd3f8235
Faulting application path: C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: 1576fd49-cca4-11e1-8bd9-001cc48a5099

Solution:

This happens because of Visual Studio is trying to load extensions that do no exist on the machine !.  To resolve this, navigate  following registry key, and make sure all directory locations exist under the given paths:

Navigate to:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\ExtensionManager\EnabledExtensions

And directory paths exist on your machine. Screen shot as follows:

A far better resolution could have been out-of-the-box in VS 2010 (dev.exe). Just disable the extension if path does not exist (thanks MS!)

For the folks developing on ESB Applications, this should be quite a common one. Posting it for those who have get prompted for this error (actually a warning) and would want to ignore it in your Visual Studio designer. In my case, I was testing this on BizTalk 2009. It also applies to BizTalk 2010.

Error: A X509 Certificate is required in the model property ‘EncryptionCertificate’ to encrypt any sensitive property in the designer

Solution:

  1. Open the file ruleset.config located at:
    Path: C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.0\Tools\Itinerary Designer\ruleset.config
  2. Navigate to the following element
    XPath: /configuration/validation/type/ruleset/properties/property
    Name: EncryptionCertificateUnder the above element comment out the validator type with name=”EncryptingCertificate validator” 

    Screen shot is as follows:
    Error with X509 Certificate using ESB 2.0

Happy coding … 8)

I was assigned the task of hosting my .NET WCF service on IIS 6 over windows 2003 64 bit !!. (Don’t ask – I didn’t have a choice on the parameters involved!)

I found out that Application Extensions were missing under my deployed website, ie no svc extension.
Path: under IIS –> Default Web Site –> MySite.WCF –> Properties –> Configuration

Solution:

It appears to be quite a  simple fix by running the aspnet extension registration. Screen shot as follows:

Happy configuring !

This is quite a simple one for the DBAs. If you get stumped with a SQL agent error for your machine name, details are listed as follows:

Error: Could not find server in sysservers. Execute sp_addlinkedserver to add the server to sysservers. The statement has been terminated.

Solution:

  1. Open SSMS and verify that SQL Server name is correct
    use master
    Select @@Servername
    
  2. Run the following command
    Use Master
    GO
    Sp_DropServer 'myServer123'
    GO
    Use Master
    GO
    Sp_Addserver 'myServer786', 'local'
    GO
    
  3. Restart SQL Server service
  4. Re-run command on step#1. This should return back the correct machine name

Happy coding🙂

Found the following error to be quite a simple fix. Posting incase, someone is looking for a solution.

Error: Communication with MessageBox  BizTalkMsgBoxDb on SQL Instance XYZ/Instance01 has been re-established

Solution:

Most likely you’d be running BizTalk 2009 (as I found out to be!). Installing the following hot-fix would resolve it:

KB Article Number(s): 980560
Link: http://support.microsoft.com/kb/980560

Happy fixing…

The following post applies to BizTalk 2009 and 2010 versions.

  1. Create an itinerary resolver extender class. This is a C# helper class
    Sample code:

    using System;
    using System.ComponentModel;
    using Microsoft.Practices.Modeling.ExtensionProvider.Extension;
    using Microsoft.Practices.Modeling.ExtensionProvider.Metadata;
    using Microsoft.Practices.Services.ItineraryDsl;
    
    namespace myNs.myExtenderClass
    {
    [Serializable]
    [ObjectExtender(typeof(Resolver))]
    public class myExtenderClassResolver : ObjectExtender
    {
    public myExtenderClassResolver() { }
    
    [Category("Extender Settings"), Description("An XPATH on the incoming message."), DisplayName("Message ID XPATH"), ReadOnly(false)]
    //DefaultValue(" Specify a DEFAULT value here if you want")]
    public string MessageIdXPATH { get; set; }
    }
    
    //-----------------------------------------------
    [ResolverExtensionProvider, ExtensionProvider("F172878A-358A-4b55-9BBB-DAD795BD630B", "MessageXPath", "My Resolver Component Extension", typeof(ItineraryDslDomainModel))]
    public class StaticResolverExtensionProvider : ExtensionProviderBase
    {
    public StaticResolverExtensionProvider()
    : base(new Type[] { typeof(myExtenderClassResolver) })
    {
    }
    }
    
    }
    

    Note: The above code is primarily to display the resolver inside our Visual Studio UI when designing an itinerary. I decided to call it myComponent  (using an attribute tag).

    I’ve declared a single property in the above code called MessageIdXPATH. The implementation of this property should be done in a separate class that inherits from Microsoft.Practices.ESB.Resolver.IResolverProvider. The implementing class would extract value from this property:

    ResolverMgr.GetConfigValue(facts, false, "MessageIdXPATH");
    

    Note again: The primary objective of the above class was to display this property in the Visual Studio UI

  2. Build the above assembly in Visual Studio (extender class), GAC it and place it under
    Location:  …\{ Microsoft BizTalk ESB Toolkit 2.x}\Tools\Itinerary Designer\Lib\

Verification

  1. In the itinerary designer, drag and drop the “Itinerary Service” component to the toolbox
  2. Once a resolver is created, select the created component  (Resolver Implementation) using properties window
  3. After selecting the component (MessageXPath), a property is listed in the designer (called MessageIdXPATH)

Happy designing🙂