Wss Adapter questions


These are some of the questions raised by early users of the WSS adapter. I assumed that people didn't want to see their names listed here, so I took the liberty and removed all the names and also rephrased some of the questions.


Q: What are the differences between the WSS adapter in 2006 which is available out of the box, and the WSS adapter for 2004 which could be downloaded from gotdotnet?
A: See my previous blog entry http://blogs.msdn.com/ahamza/archive/2005/07/27/443823.aspx At some point I will follow up in the blog with a detailed comparison of each feature.


Q: Can you use WSS adapter to archive Word/Excel docs contained in a SharePoint document libraries?
A: Yes, the new WSS Adapter can handle binary documents including Word/Excel docs. Just make sure that you: 1) use Passthrough pipelines on receive locations and send ports, and 2) you set Office Integration property to "No" on send ports and receive locations. Use CBR instead of an orchestration, it's much easier to make a mistake from an orchestration if you are using binary messages.


Q: Why would you use one pipeline over the other when using the WSS adapter?
A: Each pipeline has its own capabilities and features. The adapter does not care what pipeline is used, you will use one pipeline over the other based on the pipeline functionality that you need or don't need.
   - XmlPipeline - knows to search for the appropriate XSD schema that matches the incoming/outoging XML document and it will suspend the message if no matching XSD schema is found (corrected August 03 - validation of the XML message against the XSD schema does not happen automatically, you will need a custom pipeline for that). It also knows to add/remove PI, handle different types of message encodings, etc. This pipeline will validate the message and reject any invalid or unkown message. Using this pipeline with binary messages (non-xml) will cause the messages to be suspended. The pipeline settings can be changed to alter some of these characteristics.
   - Passthrough - this pipeline does NOT validate messages, it does not look for an XML schema, etc. This is the pipeline that you want to use with binary messages (or any message that can not be understood by BizTalk) like Word docs, PDF files, etc.


Q: The adapter "Windows SharePoint Services" raised an error message. Details "The request failed with HTTP status 401: Unauthorized." How can I fix this?
A: WSS Adapter runtime is hosted in a BizTalk host instance and it runs under the identity of the host instance. As a result the account for this host instance needs permissions to invoke the BTSharePointAdapterWS adapter web service as well as permissions to create/delete/update files in SharePoint.
Resolution:
    1.Go to your SharePoint site, probably http://<MACHINENAME>/sites/<SiteName> or http://<MACHINENAME>/
        Go to Site Settings
        Go to Site Administration
        Click on Manage site groups
        Click on Contributors
        Add Members...
        Add <MACHINENAME>\Sharepoint Enabled Hosts
    2. Now from Administrative Tools -> Computer Management, add <MACHINENAME>\<BTSHostUser> account to "Sharepoint Enabled Hosts" group
    3. Restart BizTalk host instance from the Admin MMC


Q: I added the host instance account to SharePoint Enabled Hosts and I still get 401 access denied error. Is there anything else I need to do?
A: Restart the host instance process using BizTalk Administration Console.


Q: How to install BTSharePointAdapterWS.asmx web service?
A: BTSharePointAdapterWS is in fact the Wss Adapter web service. This is installed by Windows SharePoint Services Adapter Web Service feature under Additional Software (in Setup). This feature's configuration settings are under the "SharePoint Adapter" node in the BizTalk Server Configuration tool.


Q: I have installed WSS SP2, I upgraded IIS sites to ASP.NET 2.0 but BAS and WSS Adapter Web Service features are still disabled/grayed out. What am I missing?
A: If you have done all of the above and you still cannot install BAS or WSS Adapter features then the WSS language does not match the BizTalk language. You need to install the language pack for WSS ( http://www.microsoft.com/downloads/details.aspx?FamilyID=E7EEC77D-4365-4B66-8E8D-9D079C509679&displaylang=en ) in order for BizTalk and WSS to use the same language.

Comments (47)
  1. Patrick Wellink says:

    Any Idea how you would set up a dynamic port in an orchestration.

    I had everything working with CBR but was not satisfied with the filename.

    I want to use the Receivedfilename so I have to use an orchestration.

    Any ID ?

  2. Garry Trinder says:

    My guess is that you are asking about GotDotNet adapter. The BT’06 native WSS adapter preserves the original filename by default so you don’t need to do anything and you don’t need an orchestration either.

    GotDotNet adapter v2 property WSSLibVB.ReceivedFileName will return you the original filename. You will use the msg(WSSLibVB.ReceivedFileName) to get the original filename and use it on the URI of the send port like this

    DynPortName(Microsoft.XLANGs.BaseTypes.Address)="uri of send port";

    Create a physical send port from UI and look at the send port properties to see how you should builg the URI.

  3. Moses Papas says:

    How can I poll a document library residing on a sharepoint site on a different/remote server/domain? The tutorials/examples you have in the videos deals with WSS document libraies on the same server. I tried to do this without any luck…

    I keep getting that the following error:

    "The Windows SharePoint Services adapter runtime does not have permissions to invoke the adapter Web service. In order to fix this issue, you have to add the ‘BTS2006DEVBTSUser’ Windows account to the "SharePoint Enabled Hosts" Windows group on the Windows SharePoint Services machine. This operation will allow BizTalk host instances running under ‘BTS2006DEVBTSUser’ Windows account to invoke the adapter Web service in order to send and receive messages to or from SharePoint sites. The group membership will not take effect until you restart the BizTalk host instance."

    Do I need permissions on the ‘Remote’ machine as well? Do you have any suggestions?

  4. Garry Trinder says:

    Yes, you will needd to add BTS2006DEVBTSUser account to the remote SharePoint Enabled Hosts group, and also make SharePoint Enabled Hosts group a Contributor in SharePoint. Because WSS adapter supports only integrated authentication, you will not be able to use an account from the 2nd domain to authenticate. You might need to setup a trust relationship between your two domains in order to be able to see the accounts from BTS2006DEV domain in your second domain. Most likely this trust relationship does not have to be symetrical (only one domain needs to trust the other domain) but even when you setup an asymetrical trust relationship you still need to change the configuration of both domains.  It’s been quite a while since I’ve setup a trust relationship between domains, so my knowledge in this area is pretty rusty. Here’s a link to get you started http://www.windowsitpro.com/Windows/Article/ArticleID/3868/3868.html

    I would love to keep in touch and hear from you if and how you got this to work and if you run into other issues once you’ve setup the trust between domains.

  5. AndersR says:

    As Moses im trying to run the WSS adaptor on an external box.

    The external server is a full Sharepoint Portal with SP2 (+WSS with SP2).

    From application log:

    The adapter "Windows SharePoint Services" raised an error message. Details "The Windows SharePoint Services adapter Web service was not found at the specified URL, "http://myPortal/BTSharePointAdapterWS/BTSharePointAdapterWS.asmx&quot;. The Windows SharePoint Services adapter Web service feature is required to be installed and configured on machine myPortal. If the feature has been installed and configured, then verify that Adapter Web Service Port and SharePoint Site URL settings on the BizTalk port are correct.

    However i cant find any how-to’s on how to install the web service on my SPS. Normally webservices on SPS must be installed in the _LAYOUTS folder because of the custom HttpModules implemented by SPS, and installing the Web Service on Default webserver will mean that the url would be another (http://myserver… rather than http://myportal).

  6. Garry Trinder says:

    It’s a BizTalk web service. You need to run BizTalk setup on the remote WSS box and install the mentioned BizTalk web service. When you run BizTalk Setup, the feature is under Additional Software and it’s called ‘Windows SharePoint Services Adapter Web Service’. After that you need to run Configuration and configure the web service. The tab for that is wrongly named "SharePoint Adapter" but it’s really the web service.

    Another thing, SharePoint Portal is not supported (although it might work), Windows SharePoint Services is supported.

  7. AndersR says:

    Hmm i wouldnt think a web service would need to be installed in more than one place?

    In fact i get the above error when trying to follow your tutorial video step by step:

    The adapter “Windows SharePoint Services” raised an error message. Details “The Windows SharePoint Services adapter Web service was not found at the specified URL, “http://myportal/BTSharePointAdapterWS/BTSharePointAdapterWS.asmx“. The Windows SharePoint Services adapter Web service feature is required to be installed and configured on machine XXXXXX. If the feature has been installed and configured, then verify that Adapter Web Service Port and SharePoint Site URL settings on the BizTalk port are correct.

    This error was triggered by the Windows SharePoint Services receive location or send port with URI wss://myportal:80/sites/infopath/Source?ViewName=.

    Windows SharePoint Services adapter event ID: 12461″.

    Again this is because it looks for the webservice on the MyPortal virtual web rather than ServerName.

    How do i configure my WSS Adapter to use the server rather than the portal as server?

  8. Garry Trinder says:

    The web service should not be installed on the BizTalk box. The web service needs to be installed ONLY on the SharePoint box that interacts with BizTalk. If you have multiple SharePoint boxes in an NLB cluster, you need to install the web service on all cluster nodes. If you have multiple SharePoint deployments and BizTalk interacts with all of them, you need to install the web service on each SharePoint machine. You need to install the web service on machine "myportal" or however it’s called.

  9. MatthiasU says:

    I’m in the following situation:

    There are multiple pdf-documents that I have to pick up using the file-adapter und that I need to transmit to a WSS-document Library. I’m using CBR to process this task with BizTalk 2006.

    Everything works fine, but I need to retain the original filename. Where do I get this it from to set it in the according property of the WSS adapter.

  10. Garry Trinder says:

    You will need to use a simple orchestration that gets the filename from the original file and sets it in outgoing message. Construct outgoing msg from received msg like this:

    wssMsg = fileMsg;

    wssMsg(WSS.Filename) = fileMsg(FILE.ReceivedFileName);

    Make sure your orchestration send port sends the wssMsg.

    Update WSS physical send port so that the Filename field is empty (so that it does not overide the value defined in the orchestration – this behavior is supported only by WSS adapter).

  11. Jit says:

    I’ve just upgraded Sharepoint Services to Technical refresh…and now BizTalk 2006 sharepiint adapter keeps reporting errors about the SharePoint Enabled Hosts. I can confirm that it exists and has been allocated as a contributor to the site. Do I need another config file for the updated release?

  12. Garry Trinder says:

    Did you upgrade to WSS v3? If yes, then take a look at this post http://blogs.msdn.com/ahamza/archive/2006/06/05/WSS-v3-Beta-2-Wss-Adapter-Workaround.aspx

  13. RE: BT and WSS servers as part of different domains says:

    A remote WSS server is not a problem if the BT and WSS servers are part of the same domain. You just need to install the web service.

    However, if the BT and WSS servers are part of different domains, that’s a different issue. This configuration is not supported by Microsoft.

    One way to make it work is to setup a trust between the domains (probably asymmetrical) but you mentioned that you don’t want that.

    The alternative is to create a local account with the same name and password on your both servers.

    Then install and configure a BizTalk host & host instances using that local account and create WSS adapter send/receive handlers that are using that host.

    For your WSS adapter ports, always use this new handler (or update the existing default handlers to use the new host).

    On the WSS box, you need to add the local account that you created to the SharePoint Enabled Hosts group and also to the Contributors role in SharePoint.

    Every time you change the password for the account on one machine you will need to change the password on the other machine in order to keep them in sync.

    I have not tested this approach but from previous experience with similar issues, I believe this will work.

    Remember, this configuration is not supported by Microsoft so you are on your own.

  14. Ben says:

    Can somebody confirm whether MS supports a cross domain setup for BizTalk and WSS (i.e. BizTalk servers are in a separate domain from WSS servers)?

    Cheers,

    Ben

  15. Ben says:

    As a follow on from my last question – would using the GotDotNet Sharepoint Adapter enable cross-domain communication between BTS and WSS?

    I noticed that one of the features of the GotDotNet adapter is "Username/Password in SSO per endpoint" (GotDotNet adapter supports Username/password properties stored in SSO in order to connect to the WSS using other credentials than the host credentials. BizTalk native adapter supports only integrated authentication/NTLM).  Has anyone tried this?

    Ben

  16. Garry Trinder says:

    As far as I know, cross-domain communication is NOT supported.

    You might be able to get it to work through one of these mechanisms:

    a) setup domain trust between domains

    or

    b) by running the BizTalk host under a local account and then create the same local account with the same username & password on the remote WSS machine(s).

    However, b) is probably not supported, I don’t know about a).

    GotDotNet SharePoint adapter does allow you to specify a username and password, I don’t know if somebody has tried to use it across multiple domains.

  17. Ben says:

    Thanks Adrian.  Do you know if MS supports having both the BizTalk and GotDotNet Sharepoint adapters installed side-by-side?

  18. Garry Trinder says:

    Not supported officially but they should work side by side without any problems.

  19. Supriya says:

    Hi,

    I want am working in MOSS2007 and BizTalk 2006.

    I want to put all the InfoPath2007 documents from a folder on directory to SharePoint portal.

    For that, I have created a Forms library and an orchstration whose send port adapter is Windows SharePoint Adapter.

    Send portgives an error as follows:

    Event Type: Warning

    Event Source: BizTalk Server 2006

    Event Category: BizTalk Server 2006

    Event ID: 5743

    Date: 8/21/2007

    Time: 11:59:36 AM

    User: N/A

    Computer: ITL-HJW-22215

    Description:

    The adapter failed to transmit message going to send port "SendToPortal" with URL "wss://itl-hjw-22215:2222/personal/supriyapushpadant_k/InfopathLoad". It will be retransmitted after the retry interval specified for this Send Port. Details:"The Windows SharePoint Services adapter Web service was not found at the specified URL, "http://itl-hjw-22215/BTSharePointAdapterWS/BTSharePointAdapterWS.asmx&quot;. The Windows SharePoint Services adapter Web service feature is required to be installed and configured on machine itl-hjw-22215. If the feature has been installed and configured, then verify that Adapter Web Service Port and SharePoint Site URL settings on the BizTalk port are correct.


    This error was triggered by the Windows SharePoint Services receive location or send port with URI wss://itl-hjw-22215:2222/personal/supriyapushpadant_k/InfopathLoad.

    Windows SharePoint Services adapter event ID: 12461".

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


    SharePoint Adapetr Web sevice is installed and configured on my machine. As per my knowledge port settings are also right.

    I am not able to remove this error.

    Can you plz help me?

  20. Garry Trinder says:

    I see that you specified port 2222. The default HTTP port is port 80, did you configure the adapter web service on an IIS web site that’s listening on port 2222? If yes, what are the host names for your IIS web site where you configured the web service?

  21. I receive an XML document containing the name of a document & the name of SharePoint library in which it resides.  My task is to move that document to another SharePoint library.

    I know that I can create a dynamic port to store the document.  However, how can I select documents from a SharePoint library based on the document name variable?

    Please help – is this a job for SharePoint instead of Biztalk?

  22. Garry Trinder says:

    I’m not sure if this is a pure Sharepoint task or it can be done with BizTalk. You haven’t provided enough details for me to figure that out.

    I can point you in a few directions though to help you make a decision.

    For receiving documents based on SharePoint document name (and other SharePoint properties) you can use SharePoint views. A BizTalk WSS receive location can specify a SharePoint ‘View name’ and only documents that are visible in that SharePoint view will be retrieved and processed by BizTalk. You can create custom views in SharePoint, try to create such a custom SharePoint view that shows only the documents you want to be processed and specify that view name in the BizTalk receive location.

    In the receive location, you can also specify where the WSS document being received should be archived. That works if your documents are always archived in the same location. If the location differs (based on the document properties) then you probably need a dynamic send port.

    Let me know if this answers your questions.

    Thanks!

  23. mike says:

    I tried the steps outline for the 401 errors, but I am still getting them.  I have not found any other resources that mention this error, so hopefully someone is still monitoring this blog after such a long time.

    Thanks

    mike

  24. Garry Trinder says:

    Hi Mike,

    You need to give me a little bit more data in order for me to help you. What did you try to do to solve the problem? What were the results/errors/etc? Can you login under your BizTalk account and see if you can upload/delete messages in SharePoint? etc.

    Adrian

  25. mike says:

    Thanks for the quick response.  

    I am using BizTalk, and every 15 minutes I get 3 entries into my weblog that the ShaprePoint Adapter (/BTSharePointAdapterWS/BTSharePointAdapterWS.asmx) is trying to POST something, and is getting 401 2 2148074254 error first, then 401 1 0, then a 200 0 0.  On the last try it seems like the cs(User-Agent) value is populated, but is not on the first two tries.  

    Sorry, I am  new to this, and I do not know exactly what I have enabled, or what the adapter is even trying to do.  

    What I did was verify that  Add <MACHINENAME>Sharepoint Enabled Hosts

    was added to my MOSS BAS site, and that the admin user that I am on the machine as, was in that group.  Then I restarted the BT Host.  

    Thanks

  26. Garry Trinder says:

    On the BizTalk machine, are there any errors related to SharePoint adapter in the application event log? It seems to me that you are looking at the IIS logs. A 401 in the IIS log is not necessarily an error. Normal NTLM authentication will cause your IIS log to contain pairs of "401 Access Denied" and "200 OK" HTTP status codes. That’s how NTLM authentication works. If I’m correct, what you are seeing is just SharePoint adapter runtime authenticating with the SharePoint adapter web service. If you have a WSS receive location created, the adapter is regularly polling the web service to see if there are any new messages on the SharePoint site.

  27. mike says:

    Nothing in the App Log, only in the web log.  So I have to deal with this showing up in the Web Log every 15 minutes?  This just seems to clog up my web log, but if you do not think it is causing any issues I guess I may have to deal with it.  

    thanks

    mike

  28. Garry Trinder says:

    Any web request will show up in the IIS web log including the WSS adapter web requests and the requests coming from the users of the SharePoint site. It shouldn’t be a big deal or take up a lot of space although over a long time it can amount to a lot of disk space. You can probably  check the IIS documentation to see what are the best practices for managing the IIS logs.

  29. I am trying to install the WSS Adapater Web Service on a WSS 3.0 server.  The installationg goes fine, but the configuration tool keeps wanting to skip configuration of the service because the group ‘SharePoint Enabled Hosts’ does not exist.

    The WSS host machine is also a domain controller, which means I can’t (or don’t know how to) create a local group – yet if I create a domain local, or global, group it is not recognized by the BTS Configuration tool.

    Any suggestions?

    Many Thanks,

    Chris

  30. Garry Trinder says:

    Hmm, this is a strange one. It seems you might be running into some setup bug. I would follow up with support and also ask this question on one of the BizTalk newsgroups.

  31. Garry Trinder says:

    Try to ask this question on the BizTalk 2006 R2 Adapters forum

    http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1471&SiteID=1

  32. Yolanda says:

    I have the following error.  I have configured the SharePoint services adapter in BizTalk Configuration.  But still the error occurs.  Why?

    Event Type: Warning

    Event Source: BizTalk Server 2006

    Event Category: BizTalk Server 2006

    Event ID: 5743

    Date: 2/17/2009

    Time: 4:04:28 PM

    User: N/A

    Computer: BIZTALK

    Description:

    The adapter failed to transmit message going to send port “TestForCrown_ConvertSchema4 Send Port” with URL “wss://biztalk:8080/sites/MOSS/doclib/HRInfoIn”. It will be retransmitted after the retry interval specified for this Send Port. Details:”The Windows SharePoint Services adapter Web service was not found at the specified URL, “http://biztalk/BTSharePointAdapterWS/BTSharePointAdapterWS.asmx“. The Windows SharePoint Services adapter Web service feature is required to be installed and configured on machine biztalk. If the feature has been installed and configured, then verify that Adapter Web Service Port and SharePoint Site URL settings on the BizTalk port are correct.

    This error was triggered by the Windows SharePoint Services receive location or send port with URI wss://biztalk:8080/sites/MOSS/doclib/HRInfoIn.

    Windows SharePoint Services adapter event ID: 12461″.

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

  33. Garry Trinder says:

    Like the error says, you need to install and configure the ‘Windows SharePoint Services adapter Web service’ BizTalk feature (found under Additional Software) on the SharePoint machine  which in your case seems to be named ‘biztalk’.

  34. Xiaobing says:

    I got the following exception when trying to send xml message to a sharepoint forms library

    The Windows SharePoint Services adapter Web service encountered an access-denied error accessing site http://mysite:81/ErrorForms/. The BizTalk host instance account requires Contributor-level permissions. To fix this issue, you need to add the BizTalk host instance account domainNameuserName to the SharePoint Enabled Hosts group and make this group a member of the Contributors role in SharePoint. The group membership will not take effect until you restart the BizTalk host instance.

    I verified I have the domainNameuserName added in the Sharepoint enabled hosts group, and this group is a member of the Contributors role on the sharepoint site, I also restart the biztalk host instance, anything else I need verify?

    Thanks a lot,

    Xiaobing

  35. Garry Trinder says:

    Try hitting the BTSharePointAdapterWS web service using the same credentials as the BizTalk host. Try browsing and editing documents on the SharePoint site using the same credentials as the BizTalk host. See if any of that fails.

  36. Denis says:

    Hello!  I need to configure WSS adapter on SharePoint server in other domain(and it is impossible to configure trusts). I know that adapter needs an windows authentication, but maybe there are some "cheets" to avoid it? Or maybe you can give me some advices how to try to do that.

    Thank you!

  37. Garry Trinder says:

    I haven’t tried that, you would be using it in an unsupported way. The only thing I can think of is using IP whitelisting to protect the web service and then making it run under an account that has permissions in SharePoint (removing the setting that makes it impersonate the caller, it’s probably in the web.config file).

  38. SK says:

    Is it possible to configure WSS adapter webservice with multiple sharepoint sites on the same server?

    What if I want to store documents to multiple document libraries across different sites?

    Appreciate your inputs or suggestions.

  39. Garry Trinder says:

    Yes, it’s possible. The SharePoint site URL is part of the receive location/send port configuration. You just need to make sure that the BizTalk host account is a Contributor in all of the SharePoint sites you are using.

  40. kpujara says:

    Hi,

    I am new to BizTalk world.

    I am trying to distribute MOSS 2007 content between various sharepoint farm using BizTalk 2009 WCFBasicHttp + orchestration + WSS adapter.

    For a POC, I have created two custom list ‘A’ and ‘B’ on team site on same farm.  And I want to test any new content to custom list ‘A’ distribute same to ‘B’.

    I have created ItemAdded eventhandler for custom list ‘A’. And I have hosted BizTalk orchestration as WCF Service (WCFBasicHttp adapter).  Custom List ‘A’ event handler will hand over sharepoint list content to orchestration.  Then orchestration process data and handover content to WSS adapter which in turn insert new item to Custom list ‘B’.

    Everything works fine except ‘user identity’.  Means,  new item on Custom list ‘A’ shows created by ‘<Domain>UserName’  where in custom list ‘B’ shown created by <System account>.  I know this is because BizTalk process runs with system account and with this credential it will insert new record in Custom list ‘B’.  

    Question is how can I impersonate user credential?  I have found there is IN/PROMOTED property called "InCreatedBy" that may help me.  But I don’t know how to use it.

    Sorry for the long post. 🙂

  41. Adrian Hamza says:

    Instead of trying to impersonate the user (which would require impersonating a different user for each document) I would add my own CreatedBy column in SharePoint and set the value of that column to be the value extracted from the InCreatedBy promoted property.

  42. kpujara says:

    I did not get your answer actually.  

    I can not change metadata of custom list B.  Both list are identical.  Moreover, I have to maintain sharepoint authorization and authentication (sharepoint security trimming).

    Bigger picture of my POC is;  I would like to synchronize two DataCenter each datacenter has own sharepoint farm.  So if user hit any data center he/she get same sharepoint content (security trimmed).  

    I am not sure this is best way.  But I am exploring available ways, and stuck with ‘UserIdentity’.

  43. Garry Trinder says:

    This is probably not the way to go, WSS adapter was not designed for this scenario, you might be able to get it to work, but probably there are better ways or tools to do this. Unfortunately I cannot point you to such a tool, ask this question on one of the sites linked to the left under ‘SharePoint Bloggers’ category.

  44. kpujara says:

    Thanks Adrian for your quick response.  I will ask in ‘Sharepoin Bloggers’. Thanks.

  45. sudhirgg2 says:

    We are trying to use WSS Adapter from BizTalk 2006 (not R2) and MOSS 2007. We are getting following error "The adapter failed to transmit message going to send port

    "Snd_To_Sharepoint".

    Details:"[System.Security.SecurityException] Failure decoding embedded

    permission set object." What could be the problem?

  46. Garry Trinder says:

    If I remember correctly, using WSS Adapter from BizTalk 2006 (not R2) and MOSS 2007 is not supported. I think BizTalk 2006 R2 adds support for MOSS 2007.

Comments are closed.

Skip to main content