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:
- 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.
- Configure IIS – BTS SharePoint WS Web Application
- 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.
- As you can see I selected BTSharePointV3AdapterWS (for WSS V2 SP3, select BTSharePointAdapterWS).
- This is the folder you will point IIS to later.
- Open this folder and you’ll see a web application with a web.config.tmpl
- Copy the web.config.tmpl and rename the *copy* to web.config
- 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>
- (you can always go back and tighten security up on this when you’ve got it working).
- Note the ‘SharePoint Enabled Hosts’ – local group here.
- I’ve also removed the ‘Documentation’ tags so I could get some WSDL to make sure it works within the browser.
- Save your web.config within Notepad.
- NOTE: make note of the Folder Path to get here as we’ll need it in IIS next.
- Configuring IIS
- Bring up IIS Admin MMC snapin.
- 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. - 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…>
- Click OK.
- To Test your WS: browse to: http://<your server>/BTSharePointAdapterWS/BTSharePointAdapterWS.asmx
- You *should* get this:
You can invoke the IsAlive function and get TRUE back.
- 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:
- Local file security – make sure the Web App Pool acct can access those directories.
- Windows Auth is turned on, on your Web App.
- Check IIS log files for clues.
- You’re done on the IIS side of things, let’s configure BTS Side.
- 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.
- Install the “I’ve been Configured Registry Keys” – I took these from a previously successful 2009 install.
- Once the registry keys have been applied you’ll need to go and configure the …\TPM key to reflect your setup as follows:
- In Particular – configure your SharePoint SiteID to the one you saw in IIS.
- How is this Different for a x64 bit Install
- The IIS piece is the same.
- The BTS Piece – the Perf counters are the same,
but the ..\TPM piece is under HKLM\SOFTWARE\WOW6432Node\Microsoft\BizTalk Server\3.0\ConfigFramework - 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. Alas…this is *NOT* the case with WSS Adapter post BTS06.