Resolving Azure ServiceBus related errors in IIS 7.0 and 7.5

When you install the Windows Azure AppFabric SDK, it extends your machine configuration files with set of WCF custom extensions (behaviour, bindings, bindingElement) to help you build the AppFabric service bus based applications. Examples:

  • basicHttpRelayBinding
  • netTcpRelayBinding
  • ws2007HttpRelayBinding
  • serviceRegistrySettings
  • transportClientEndpointBehavior
  • tcpRelayTransport
  • httpRelayTransport
  • httpsRelayTransport
  • onewayRelayTransport

As soon as you start working, you will notice couple of issues.

  1. Broken Visual Studio IntelliSense, and
  2. Broken IIS 7.0/7.5 AppFabric settings.

For Broken Visual Studio IntelliSense, there is very good article (Intellisense when editing Service Bus configuration files? Yes please!) from Paolo Salvatori explaining how you fix it.

For the broken IIS 7.0/7.5 settings there are few blog posts recommending you to replace the ServiceBus_schema.xml file that comes as part of the Azure SDK samples under the "%SystemRoot%\System32\inetsrv\config\schema" folder.

Example 1:

http://www.infosysblogs.com/cloudcomputing/2011/06/basic_steps_to_expose_the_on-p.html#more

Once the Azure SDK installed, copy the ServiceBus_schema.xml file from <installation folder>\Labs\IntroServiceBus2010Part1\Source\Assets to %SystemRoot%\System32\inetsrv\config\schema directory.

Example 2:

http://msdn.microsoft.com/en-us/evalcenter/wazplatformtrainingcourse_introductiontotheappfabricservicebus2010part1_topic4

Additionally, as Windows Server AppFabric uses the Microsoft.WebAdministration (MWA) API to read and write configuration files, you will provide a custom MWA schema for some of the elements from the Web.config file to be correctly recognized. This will give you the possibility to enable the Auto-Start feature from the Internet Information Services (IIS) Manager.

  1. Copy the ServiceBus_schema.xml file located under the Source\Assets folder of this lab to the %SystemRoot%\System32\inetsrv\config\schema directory. This file contains the schema that will be used by the Windows Server App Fabric to read the configuration file for your service.

There is a better and easy way

The easy fix is to install the patch explained in this KB article http://support.microsoft.com/kb/980423

After installing the fix, I didn’t encounter any issues on the AppFabric Server (IIS Manager 7.0) related to custom service bus WCF elements.

Nandri!

Saravana Kumar

HP Business Data Warehouse Appliance

HP Business Data Warehouse Appliance

The Microsoft and HP Business Data Warehouse appliance Optimized for SQL Server 2008 R2, provides the best performance possible for data mart and small data warehouse workloads with data volumes of up to 5 TB. The appliance helps reduce the time and cost of implementing a data warehouse through deployment of an optimized, pre-configured solution that has been designed, tuned, tested by Microsoft and HP.

http://www.microsoft.com/sqlserver/en/us/solutions-technologies/Appliances/HP-bdw.aspx

Blog Post by: cvidotto

BizTalk360 at BizTalk user group meeting – Stockholm, Sweden

We are extremely delighted by the amount of help and support we received so far from the great Microsoft BizTalk MVP (Most Valuable Professionals) community. It simply exceeded all our expectations and made us speechless. Special thanks to Mikael Hakansson, Johan Hedberg, Steef-Jan Wiggers, Mikael Sand, Richard Seroter, Kent Wear, and our close friend in UK Michael Stephenson

When Mikael Hakansson and Johan Hedberg mentioned about the upcoming Swedish BizTalk user group meeting "Top 10 Things to Know When Integrating with Line of Business Systems" by Richard Seroter and Kent Wear related to their upcoming book "Microsoft BizTalk 2010 ? Line of Business Systems Integration", we took the opportunity to visit Sweden and try to create some awareness about BizTalk360 among the Swedish BizTalk community.

Integration space is a constantly changing landscape. However experienced you are, you are constantly challenged with new scenarios, patterns, systems, etc. In this book they tried to address some of the common challenges customers face when Integrating to line of business systems like Dynamic CRM/AX, SalesForce.com, SAP, Windows Azure, SharePoint etc.

The presentation was extremely good, I personally picked up lot of tips related to Azure ServiceBus. One of the things we are working on for our next phase of BizTalk360 is the integration with Azure Service bus to connect BizTalk360 remotely to the on-premise Microsoft BizTalk infrastructure via the cloud (ServiceBus) reliably, securely and with less overhead on infrastructure. From that point of view, it was such a great event for us to pick up some valuable tips. 

The event was filmed, and it will show up in channel9 at some point. I recommend everyone to involved in this space to take a look.

I’m also delighted to announce, I’ll be speaking in the next Sweden user group meeting in August/September. We are discussing the topics with Mikael and Johan.

We were also surprised to see the big Microsoft Windows Azure hot air balloon, which apparently is one of the biggest hot air balloons in Sweden with the capacity of 22 people.

Thanks everyone for stopping by our stand and viewing the demo of BizTalk360. If you got any further questions please feel free to contact us via any of your preferred contact options listed here

We are looking forward to see you all again in August/September.

 

 

 

Social:
twitter: @biztalk360
facebook: http://facebook.com/biztalk360
support: http://getsatisfaction.com/biztalk360

Nandri

Saravana Kumar

Is BAM Tools a prerequisite for EDI/AS2 Runtime in BizTalk Server 2010?

Is BAM Tools a prerequisite for EDI/AS2 Runtime in BizTalk Server 2010?

Triggered by a question in BizTalk Forum, I started researching and testing if really BAM Tool is a requirement to install for EDI/AS2 Runtime functionalities. I was particularly interested in EDI functionality because I’m advising one of my clients to migrate from BizTalk 2006 R2 to 2010 and I really need to know the basic […]
Blog Post by: Sandro Pereira

ESB Toolkit 64-bit Issue

ESB Toolkit 64-bit Issue

One of the issues I came across recently running the ESB Toolkit on a 64-bit server was the following. Error details: The send adapter for this send port is not supported on 64-bit host instances. Please make sure that the send adapter is associated with a 32-bit only handler. This occurred while sending a fault […]
Blog Post by: Colin Meade

BizTalk Mapper – How-to execute xslt statements and use the result as input to other functoids

This post will present a short demonstration of how to use the result of a Scripting functoid doing XSLT to something else then creating a node in the destination document.

This post relies on the following concept, and your familiarity with them:

The sample is simple, and what it does could be solved in a much simpler way. I am not out to show of some complex application – I want to show a very simple example, and let you apply it to whatever complex scenario where you think it may be a fit.

Here is the map:

Given this (extremely simple) input:

<ns0:Root xmlns:ns0="http://SwebugMapping.C">
  <Cars>
    <Car>
      <Registration>Registration_0</Registration>
      <Brand>Brand_0</Brand>
      <Color>Color_0</Color>
    </Car>
  </Cars>
</ns0:Root>

It will create the same output (phew!). Nothing fancy by far.

As you might have seen from the screenshot though, the magic of it all, and what I want to show, is how I use xslt to transfer the data via an (for this small scenario) obscure and unneccesarily complex yet (for more demanding scenarios) extremely powerful and dynamic mix in of xslt in an otherwise “normal” map. There are scenarios where this is very useful.

The first functoid uses the global variable conecept to create an global variable. It also holds a method returning a void that allows it to be connected to the root node of the destination without creating an output. Additionally it uses a trick where a scripting functoid will allow you to specify multiple methods within the functoids script, although only the first will be the one triggered to create the functoids output. This second method will be used to update the value of the global variable.

string MyStringValue;

void initglobals ()
{}

void SetMyStringValue(string s)
{
  MyStringValue = s;
}

The second functoid uses and scripting functoid with the xslt call template to transfer the registration node. But it also, in bold and italic below, calls the user defined csharp method we created in the first functoid that updates the global variable. It can perform virtually any type of xslt logic and that pass that in as a parameter, like the keyed cumulative sum – but in this case simply selects the value of the Color node and sets that value. Like I said – I’m not out to present a complex scenario. I’m out to make it simple to understand. Putting it to good use in a complex scenario is your job!

<xsl:template name="MyXsltCallTemplate">
  <xsl:param name="registration" />
  <xsl:variable name="var:u1" select="userCSharp:SetMyStringValue(string(Color/text()))" />
  <xsl:element name="Registration">
    <xsl:value-of select="$registration" />
  </xsl:element>
</xsl:template>

Lastly the third scripting functoid simply outputs the value of the global variable completing the map that creates the same output as it got input.

public string GetMyStringValue()
{
  return MyStringValue;
}

Cool huh? At least I hope I got you thinking about how to combine the power of xslt and the BizTalk Mapper for those complex scenarios where direct usage of xslt just makes so much more sense then trying to get the same result out of mad series of chaining of “regular” functoids which sometime border on bringing about semi-suicidal thinking.

/Johan

Blog Post by: Johan Hedberg

Setting up a remote git repository on your ReadyNAS

More of a note-to-self, but may be useful to other ReadyNAS users who aren’t quite at home with Linux.

As I’m doing a lot of coding with different environments, and I want easy SCM, git is a fine choice. Git runs through IP addresses, so I can access remote servers inside VMs without any weird config needed. It integrates natively with XCode for iOS programming, and msysgit is a simple UI for Windows (there is also a VS extension for git).

Setting up git on the ReadyNAS is straightforward, but there are a couple of fiddly steps. First of all install the git add-on and get it configured correctly:

  1. Install the latest version of the community git add-on (download the .bin file and upload as a local update through FrontView, as with any other packages).
  2. Enable root SSH access with the ReadyNAS add-on
  3. Sign on to SSH as root: ssh root@your_nas_ip (using your FrontView admin password)
  4. Open the remote logon script for SSH – text editor vi will get you there: vi .bashrc
  5. Insert a new line in the script to add the folder with the git binaries to the path for remote logins: export PATH=PATH:/opt/rfw/bin

To create & populate your remote repository:

  1. Sign on to SSH as root: ssh root@your_nas_ip
  2. Create the folder for your repository: mkdir /opt/git/what_ever && cd /opt/git/what_ever
  3. Initialise the repository: git – bare init
  4. Exit SSH (exit)
  5. Navigate to the local git project folder:cd projects/etc
  6. Add the remote repo: git remote add origin ssh://root@your_nas_ip/opt/git/what_ever
  7. Populate the remote repository:git push origin master (using your admin password).

All done, and you can push, pull and clone to your NAS drive as if it were github. Navigate to local Web interface (https://your_nas_ip/gitweb/gitweb.cgi) and you should see your new project listed, and you can browse all the previous commits.