Feeds:
Posts
Comments

Archive for the ‘BizTalk 2010’ Category

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 !

Advertisements

Read Full Post »

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)

Read Full Post »

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…

Read Full Post »

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 🙂

Read Full Post »

Alot has been said about the request response scenario in BizTalk. I’m afraid this topic is still in confusion amongst BizTalk developers in general, and while understanding the capabilities of BizTalk’s ESB toolkit.

The ESB toolkit 2.0/2.1 allows sending message to destination system and correlating a response on it. This is acheived by the Enterprise application block (Caching) behind the scenes. The itinerary header for the initial send is cached, and respective correlation information (TransmitID) is stored in the Application block. Upon receiving response, it is correlated on the same token, the itinerary header is retreived from the Cache manager and then attached to the message.

I’ve elaborated the whole working with two pictures. They carry a a lot of detail – but worth the effort!

Happy coding 🙂

Read Full Post »

I must admit advocating against the BizTalk ESB at times. However, this one feature called the Itinerary Broker Service is pure brilliance.

In short, consider this as a decide shape in workflow. The itinerary look at a certain value (in the context), and decides on the path – just like a decide shape in a workflow. For Itineraries this step is called the Broker Service. Based on a certain value (in the context), the respective itinerary step is chosen.

Elaboration (Itinerary Steps). Consider an itinerary with the following steps:
1. Broker.MessagingBroker
2. Routing (to send port rXYZ)
3. Routing (to send port rABC)

Here we want Step 1 (MessagingBroker) to evaluate a value on the context of the message. If true, execute step 2 – else execute step 3.

Scenario:
Provided two incoming message types (type1 and type2) are pushed into the ESB. If MessageType = type1, then ==> follow step 2, else follow step 3.

That’s all on the broker service. Remember that this works on the messaging level. Read more about this on the following MSDN link

Link: http://social.msdn.microsoft.com/forums/en-us/biztalkesb/thread/5516AFBA-336C-45FF-B1DA-B97EF2EFDB54

Further Info (By Nick Hauenstein): Click here

Sample (By Nick Hauenstein): Click here

Happy designing 🙂

Read Full Post »

This post describes debugging on parallel BizTalk components (as in threads) running in VS 2010. With my current application, I submitted a message that would be routed to multiple locations. Before being routed, the file was being archived to a disk location (on the send component).

While debugging, the editor would switch between threads (as expected). I setup a breakpoint on the Archive Component, and the data-layer. In order to focus my debugging on the Archive component, I wanted to pause all other interfering threads.

To view the running thread in VS 2010 IDE, open the threads window, and select your process (appears under BizTalk Server 2010), right click and hit pause

Interestingly, if I open up the Parallel tasks window during debugging I get a diagram of all my tasks 🙂

This shows me two parallel tasks 1. ArchiveMessage… 2. Helper.Advance

Right click on Show External Code on the Parallel tasks (diagram above),

… And this would display a complete (stack) trace on how the call originated

Happy debugging 🙂

Read Full Post »

Older Posts »