Hello,
Here's hoping that I can get a steer on how to pinpoint the source of a problem with a K2 Blackpoint project incorporating InfoPath forms which use secondary data connections to call web services via udcx files. Since users don't have Office 2007, I need to have the form open in the browser. The projects I'm working on are fully operational in the development environment, but not when published to the production server. The SharePoint Enterprise Edition host runs on Windows Server 2003 SP2, and is itself patched to SP2. I am using Kerberos in both the production and development environments, though with different user accounts on each.
Before going into all the gory details of the data connections, I'm wondering if the problem is a misconfiguration of the K2 Runtime Services. I mention this because, while configuring the InfoPath process from within K2 Studio, I get to test the Workflow Web Services URL. This works fine against the development server, but fails against production with the error: Connection failed; the request failed with HTTP status 401: Unauthorized. Meanwhile the test of the Workflow server succeeds in both cases.
So I experimented a bit and found I could navigate to the development machine's InfoPathService.asmx page just fine from a separate workstation but not to the same page on the production server. With the latter, I get the tedious Username/Password credentials box three times beofre the standard 401.1 error page. Meanwhile, if logged on to the production server itself, the page opens fine.
That all suggests a Kerberos problem, but I can't find out what. I now have a sheaf of papers comparing the development with the production systems, with a page for each of web site authentication methods, SPNs, application pool acounts, web.config authentication settings and udcx authentication settings. It all looks right, but doesn't work.
Using the simplest possible InfoPath form, I find I can deploy a project to production, open the form via the browser and submit it fine - it sends me a friendly e-mail to confirm it has worked via a K2 MailEvent, so I know K2 has handled the process. However, as soon as I add a data connection, I can't even open the form. On the server the message is 'This form is not browser-enabled'; on a client machine without InfoPath 2007, the screen just shows 'The form has been closed'; on a client with InfoPath 2007, the form opens in InfoPath client, complete with secondary data, but then won't submit: I get the IE user credentials dialog 3 times, then an InfoPath user credentials dialog 3 times, then 'the web service request could not be authorized'. The InfoPath dialog is referencing http://<ProductionServer>/RuntimeServices/InfoPathService.asmx.
Which made me think that perhaps getting the Runtime Services working without error would sort out the data connections. I'd love to understand why it can handle the processing of a form without a secondary data connection, but not one with. More practically, it would be a great help to have confirmation about a couple of the recommended settings:
1. If using Kerberos, should the K2 Runtime Services website be explicitly set to use "Negotiate, NTLM" authentication?
2. Should there be separate SPNs for the port on which the K2 Runtime Services website is running?
In my case, on the (working) development system, the top level (w3svcNTAuthenticationProviders) is set to "Negotiate, NTLM" but nothing set at the K2 Runtime Services node. Nor do I have any SPNs for HTTP/<ServerName>:81 or HTTP/<ServerName>.<FQDN>:81, where 81 is the port for the K2 Runtime Services website.
I'm also not getting any specific error messages, either in the Windows or the SharePoint logs. I wonder what SharePoint diagnostics Category to set to capture the problems opening the form with a data connection (with just the Forms Services categories set, there are no log entries at all, suggesting a failure earlier in the loading process)?
For the sake of completeness, I should mention that the development site was upgraded from K2 Blackpoint beta 2 to the RTM version, while on the production site, K2 was installed afresh. I notice a small difference in the names of the applications within the K2 blackpoint Application Pool, being K2 Runtime Services on the production system and K2 Web Services on the development system. The other application, RuntimeServices, is the same on both.
Any guidance as to what further to check or how to narrow down the problem further will be very much appreciated. With thanks and regards,
Sebastian Crewe