Well – after spending *far* too long trying to get a little Red X to disappear from
my BTS Configuration tool, so I can have a green light to configure the SharePoint
adapter, I thought “There’s got to be an easier way”

Exhibit A – your honour. The SharePoint Adapter Configured.

So – what I did was roll my sleeves up and do this by hand.

This particular install – BTS09 x86, I installed WSS V3.0 with Sp2 and created a local
sharepoint web application, site collection and had a whole bunch of SharePoint happiness
coming back to me on http://biztalk (my server name).

All good I thought – except the configuration tool didn’t like what it found. I looked
at logs, ran network sniffers and even manually ran the tool  Microsoft.BizTalk.KwTpm.StsOmInterop3.exe http://biztalk with
success:

But still no joy in the configurator.

Here’s how to do it manually:

  1. Setup your local or domain SharePoint Groups
    Typically this is the ’SharePoint Enabled Hosts’ Group – if it already exists
    on the domain, then great, if not create it. For this I created my group on the local
    machine.
    I also added as members, my biztalk service account and my Sharepoint Service
    Account
    .

  2. Configure IIS – BTS SharePoint WS Web Application

    1. Within the BizTalk Installed folders – e.g. c:\program files\Microsoft BizTalk 2009\Business
      Activity Services, you’ll find the set of WebServices to choose from. Select the right
      one for your SharePoint deployment.

    2. As you can see I selected BTSharePointV3AdapterWS (for WSS V2 SP3, select BTSharePointAdapterWS).

    3. This is the folder you will point IIS to later.

    4. Open this folder and you’ll see a web application with a web.config.tmpl

    5. Copy the web.config.tmpl and rename the *copy* to web.config

    6. Open up your Web.Config in Notepad and configure as follows:

        <?xml version=”1.0″ encoding=”utf-8″?>
        <configuration>
          <system.web>
                <httpModules>
                    <!–add name=”UrlAuthorization”
        type=”System.Web.Security.UrlAuthorizationModule” /–>
                </httpModules>

            <!– Change debug=”true” if you want to debug this web service
        –>
            <compilation defaultLanguage=”c#” debug=”false” />
            <customErrors mode=”Off” />
            <!– Windows Authentication is required for this web service.
        –>
            <authentication mode=”Windows” />
            <!– Impersonation is required for this web service. –>
            <identity impersonate=”true” />
            <authorization>
                <allow roles=”SharePoint Enabled Hosts”
        verbs=”GET,HEAD,POST”/>
                <deny users=”*”/>
            </authorization>

            <!– Uncomment this block if you want to do some tracing of
        this web service –>
            <!– <trace enabled=”true” requestLimit=”10″ pageOutput=”false”
        traceMode=”SortByTime” localOnly=”true” />  –>
            <globalization requestEncoding=”utf-8″ responseEncoding=”utf-8″
        />

            <!– The size of a document being posted to SharePoint depends
        on this setting –>
            <httpRuntime maxRequestLength=”100000″ />
            <trust level=”Full” originUrl=”” />
          </system.web>
          <runtime>
            <assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
              <dependentAssembly>
                <assemblyIdentity name=”Microsoft.SharePoint”
        publicKeyToken=”71e9bce111e9429c”/>
                <bindingRedirect oldVersion=”11.0.0.0″
        newVersion=”12.0.0.0″/>
              </dependentAssembly>
            </assemblyBinding>
          </runtime>
        </configuration>

      1. (you can always go back and tighten security up on this when you’ve got it working).

      2. Note the ’SharePoint Enabled Hosts’ – local group here.

      3. I’ve also removed the ’Documentation’ tags so I could get some WSDL to make sure it
        works within the browser.

      4. Save your web.config within Notepad.

      5. NOTE: make note of the Folder Path to get here as we’ll need it in IIS next.
    7. Configuring IIS

      1. Bring up IIS Admin MMC snapin.

      2. Select your SharePoint enabled Web Site, I selected ’Default Web Site’. Right click
        when ’Default Web Site’ is Selected and select ’Add Application’

        note: IIS 7.0 Manager shown.

      3. Configure this as follows:

        (Note – the App Pool User should be able to post into BizTalk and SharePoint)
        Physical Path: <path you had previously to either V2 or V3 of your BTSharePointV3Adapter>

      4. Click OK.

      5. To Test your WS: browse to: http://<your server>/BTSharePointAdapterWS/BTSharePointAdapterWS.asmx

      6. You *should* get this:

        You can invoke the IsAlive function and get TRUE back.

      7. If not, then fix your IIS related errors, at this point you’ve got a WS that uses
        the SharePoint APIs (locally). Some things to check:

        1. Local file security – make sure the Web App Pool acct can access those directories.

        2. Windows Auth is turned on, on your Web App.

        3. Check IIS log files for clues.
      8. You’re done on the IIS side of things, let’s configure BTS Side.
  3. Configuring BizTalk Side
    Fortunately the WSS Adapter is installed as part of the BizTalk Runtime configuration
    – it’s just not configured. So as far as registering the adapter with BizTalk it’s
    already been partly done.
    1. Install the “I’ve been Configured Registry Keys” – I took these from a previously
      successful 2009 install.
    2. BTS
      WSS Reg Keys

    3. Once the registry keys have been applied you’ll need to go and configure the \TPM
      key
      to reflect your setup as follows:
      1. In Particular – configure your SharePoint SiteID to the one you saw in IIS.

      >

    4. How is this Different for a x64 bit Install
      1. The IIS piece is the same.

      2. The BTS Piece – the Perf counters are the same,

        but the ..\TPM piece is under HKLM\SOFTWARE\WOW6432Node\Microsoft\BizTalk
        Server\3.0\ConfigFramework

      3. So you’ll need to ammend 1 of the above 2 REG files.

      >

      You’re done!

      Why oh why is this so hard from within the Configurator.

      NOTE: There *USED* to be a Registry key that told the BTS WSS Adapter where
      to go looking for the BTSharePoint WS – a URL (..STSServiceUrl). This eliminated the
      need for a local machine install of SharePoint/WSS. Alasthis is *NOT* the case with
      WSS Adapter post BTS06.