RPC – Form Submission Cannot Be Processed Error

We recently had a fun little issue where a seemingly random set of users with varying combinations of Windows 2000, XP, and Vista as well as Office 2003 and Office 2007 started having issues editing documents from SharePoint documents libraries.

This didn’t effect all our users, which made it trickier to debug, but when we were finally able to do a Fiddler trace it appeared that the calls failing were all going to the /_vti_bin/author.dll library.  This is a long-standing holdover from the bad-old days of FrontPage and FrontPage extensions that still gets used in several scenarios by Office clients (including SharePoint Designer).

The RPC error we kept getting was “Form submission could not be processed because it exceeded the maximum length”.  This seemed really odd since the actual request size in these traces was only a few bytes.  We knew our Maximum Upload Size value was bigger than a few bytes, having just gone through an exercise to increase it to 200MB.

I’ll just cut to the chase rather than bore you with all the dead ends we went down (Google was unfortunately not a lot of help on this one).  It turns out someone had changed our Maximum Upload Size to 2048MB.  I don’t know why this happened, but it’s slightly bigger than the maximum size noted in the stsadm docs for the max-file-post-size (2047MB max).  If you spend a lot of time with powers of 2, you’ll probably notice this is suspiciously close to one of the magic numbers that tends to result in things like overflow errors (i.e. it’s right at the maximum size of a signed 32bit integer).  My guess is that the old FrontPage RPC stuff still uses 32-bit integers to store this kind of thing, and it probably “rolled over” to look like a negative number.  So any calls to author.dll were “too large” no matter how big they actually were.  I don’t know for sure, but it seems like a high probability.

Anyhow, just change the Max Upload Size back to a more reasonable value resolved the issue and our Office clients  were happily RPC-ing away again.

Advertisements

Highlights from SharePoint 2010 Hands-on

I thought I’d do a quick post to capture some of my favorite (and not-so-favorite) findings from spending some time with SharePoint 2010 in the hands-on-lab room.  I’ll update this as I get time.  Perhaps it will even turn into a nice “Top 10” list or something.

Highlights

  1. You can now add field/column validation right from the UI using the same Excel-style formulas previously used for filters.  There are limits (i.e. you only get one  “error message” for the whole form instead of for each column), but this will be sufficient for many of the simple cases
  2. You can seamlessly replace the edit/new form for a list with an InfoPath version by launch InfoPath from right in the ribbon for the list.  It’s really slick and will work around a lot of those pesky “Why can’t I lay my columns out this way and label/describe them better” requests.
  3. The new list view web parts are *crazy* flexible and nice and AJAX-y.  You can also embed them all over the place (e.g. inside of a wiki content section – more on this later)
  4. The rich text editor combined with the ribbon UI is absolutely brilliant.  This blows away the editing interface for any other similar tool I’ve seen, and the promise is that it will work fine across browsers too.  Haven’t had a chance to test that, but I doubt if they would claim it if there wasn’t a lot of work going into it.  Our users are going to love, love, love this editor.
  5. Tagging is *everywhere* and extremely powerful.  This feels really well thought through, and in retrospect I’m glad we avoided trying to graft on a third party product.
  6. Document IDs – yup, you can finally have unique document ID that will never change and link to it from anywhere.

Lowlights

  1. List to Excel integration is still via the same crufty .iqy file mechanism that has been around for several SharePoint iterations now.  Not only will this mean years of the annoying/scary error dialog when opening a list in Excel, but it likely means no way to have a published Excel sheet (in Excel Services) that points back to list data.  C’mon Microsoft, is it sooooo hard to make Excel use the same integration mechanism that Access does (i.e. web services)

Jeff Teper Keynote and live demos – SPC 09

Jeff is a corporate VP in charge of SharePoint who has apparently been around it for a very long time.  I don’t really remember him from previous events for SharePoint, but I’ll take his word for it.

He put up a Bill Gates “1 slide vision” document from 1999, and it’s pretty funny how well it still applies to the challenges around integrating all the stuff SharePoint deals with together.  The man definitely had a vision.

Ugh, so far this talk is like the overly-long Academy Awards thank you list.  I’m sure everyone feels much better about themselves.

We’re going through the new version of the SharePoint “cheese wheel” or pie.  It’s now all blue, and has some tweaked titles, but largely still very similar.  I’m sure will be seeing lots of this.

Communities is one of the new concepts in the wheel.  It’s basically lumping together some of the collaboration stuff they already had (blogs, wikis, team sites, etc) with more of the social networking capabilities (tagging, “folksonomies”, meta-data management, expert identification).  The My Site experience and the profile has been revamped considerably, including a Silverlight org-chart that may be the Outlook Address Book killer.  We’ll be needing to take a close look at this at work.

ECM Scenarios.   They are taking the scalability to whole new level.  Millions of documents in a folder or list, 10’s of millions in a library, federated scenarios to make a seamless experience of 100s of millions across several libraries.  This will definitely require some in-depth investigation later, but it certainly sounds promising.  They are going for the jugular vs Documentum/Livelink here.  Second big applause item here – content types can be managed at any level, including across farms.  They can store large objects like videos for digital asset management scenarios (goodbye Podcast Kit for SharePoint).  “Document sets” are a new feature that is very much like virtual documents in Documentum.  They’ve ramped up the governance, records management, compliance facilities.

Search is changed pretty significantly as you can now have either “standard” search or FAST search plugged in.  These are supposed to have a consistent programming model, but he did not say if it is the same as the existing model.  My guess is no.  They are trying to leverage the fact that they know our organizational structure to increase search relevancy.  I’ve been hoping for this for years, as they have significant competitive advantage there vs other search platforms given the OS/Office footprint.  Also doing things like automatically figuring out name “typos” in searching for people based on the way the names might be mispronounced phonetically.

On to BI.  They are pushing the whole PerformancePoint suite into SharePoint as a throw-in now.  Excel services now looks like a much more complete product.  Things like charting web parts, sparklines, etc are now built-in.  On a very geeky note, Excel calculation services are now available as REST feeds, so you can link to specific Excel data from anywhere on the web.  Sweet!  They’re going to have some ways to bind  Visio charts to data and then expose this in SharePoint.  That could either be useless or tremendous, depending on the implementation.

They are finally unveiling “Project Gemni” as SQL Server PowerPivot.  This is something that can either be run on the client (in an Excel flavor) or the server (a SharePoint flavor) to slice and dice millions of rows very rapidly.

Admin Notes

Big picture, their SharePoint Online offering made them highly motivated to have a scalable way to manage large SharePoint environments, so there have been a lot of improvements here.  They finally put the Admin Web UI through their usability labs.  If you’ve ever seen the Central Admin page in WSS 3, you’d know this was a long overdue idea.

PowerShell is fully baked into this release for the command-line administration of SharePoint.  I don’t think this means the death of stsadm.  It’s more of a complement.  Also you can manage the farm remotely from a client machine (Windows 7).  Yes!

Centralized logging database for SharePoint environment that will have a publicized structure so we can use whatever we like to report against it.

Upgrade experience should be much more seamless than 2003-2007.  As they already demoed in preview videos,

Demos

Someone named Jared up to do demos.  No, not the Subway guy.

He’s showing the ribbon UI and the rich text editing.  Wow, he just popped into “wiki syntax” to point to an arbitrary piece of content in the site.  It’s hard to describe but, typing the [[ brought up a way to pick any other available pages, kind of like Intellisense in Visual Studio.  It’s really slick!

Showing the new ribbon UI also includes the ability to perform operations like “Checkin” on multiple documents at once.  This is one of those things that seems like it always should have worked that way, but it finally does now.

Very slick integration between the Office Clients and SharePoint.  For instance, now opening a SharePoint site in the File dialog in office lets you browse by meta-data not just treat it like a bunch of folders.

You can definitely tell they’ve listened to customer feedback on pain points.  That has always been a Microsoft strengths.

On to the new MySite/social stuff.

Hmm, a tabbed interface for all the sections on your profile  page (e.g. organization, my blog posts, etc).  I think I knew someone once who liked that idea and proposed it as a customization for SharePoint 2007 My Site profiles. :)  There’s now a “work notes” section on profile pages that is a blatant rip-off of the Facebook Wall, but lots of people seem to like that.

Ratings are built-in and ubiquitous.  Nice!

They are so going to kill Google Docs and Spreadsheets with the online versions of the Office apps.  In demoing the “co-editing” features, Jared has a great line.  “The nice thing about co-editing is that it allows me to watch other people do my work for me.”   Well, when you put it that way, sign me up.  REST-ful feeds for Excel look pretty awesome too.  He just showed how to link to a live chart directly from Excel services using the “Insert Picture” capability in  a blog post.  It’s a really powerful concept.

He’s really flying through stuff here.  Showing search, which now has wildcards built-in.  People search is rerally slick with that new Silverlight Orgchart gizmo (that’s not really a new technical term.  Why not, we use gadget and widget already?).

So PowerPivot appears to scale pretty well.  He’s working on an Excel spreadsheet reporting 101 million rows.  It’s smoking fast filtering data.  Not sure what this is based on in the backend.  It might be use Analysis Services cubes or something.  Combining this with the ability to publish a workbook to a SharePoint site is extremely powerful.  Even with an investment in another enterprise BI tool (e.g. Cognos,  Business Objects) this is something that bears looking into.

It looks like there is some flavor of SharePoint Workspace/Groove available for Windows Mobile, but no demo so it may not be baked yet.

Arpan Shah handles the admin demos.  There is a new “Health Analyzer” section in Central Admin that will try to identify issues in your farm based on a rule set.  This should be pretty helpful, since there are so many places to look for this stuff now.

He’s also showing the ability to set thresholds on large lists to allow lots of items in a list, but put governors in place to keep inefficient use of them from overwhelming your environment.  Not that this could ever happen in SharePoint 2007 or anything. 😉

SPC 09 Keynote

SharePoint Conference is huge this year.  There are about 7400 people, so it’s almost twice as big as last year.  The keynote venue is gigantic.  Technically seems like a very well setup operation.  The web site is really nice for managing all the session, then being able  to access them via a phone.  All tech conferences should be doing this at this point.  No excuse vendors.

Tom Rizzo, whose a Director or something or other SharePoint related at Microsoft (just kidding Tom) is M-Cing the keynote, but people are definitely here for the demos and Ballmer.  Wow, allegedly two couples are getting married at the conference.  That’s, um, some kind of special.

They are rolling a video clip of high profile SharePoint sites.  There are some *big* (think Fortune 100) names in there.  I don’t think we need to worry about whether we’re going out on a limb to recommend SharePoint for ssites these days, whether they are Internet facing or internal.

And, hey, it’s Steve!  Not as cool as turtleneck Steve, but style points  don’t win the enterprise.  Hey, apparently this is the  first speech in a while he doesn’t feel obligated to start with a commentary on the economy.  I guess he feels like the SharePoint economy is doing just fine thank you.  If you look at their sales numbers, you can see why.  He mentions that they have a video camera at the back of the audience where they can tell how many people have some kind of laptop, tablet, etc fired up.  It turns out not very many.   That’s one of the points he’s trying to make is that we still have work to do on device form factor (see their tablet PC initiatives, Surface, etc).

First big datapoint – public beta in November – for SharePoint 2010 and the rest of the Office 2010 suite.  Other than that he hasn’t said anything that wasn’t already on the MS SharePoint website.

Big trend stuff:

Move to cloud hosting (SharePoint Online)
Push to external facing sites
Emphasis on composite and “mashup” apps.  Of course, this was Plumtree’s vision circa 2002.  Turns out this is harder than you’d think.

Wow, Steve’s actually a SP user himself.   I guess this shouldn’t be surprising, but it still kind of is.  He just talked about how he setup a collaboration site for all of his senior leadership team with their latest sales numbers, different documents, etc.  It didn’t sound that complicated, but, hey, he’s the CEO and he’s an actual hands-on user.  I’m sure most companies would kill for that kind of adoption.

Based on his comments, it’s clear they received (and responded to) an absolute ton of feedback about the developer experience for SharePoint and it’s lack of “1st class citizen” status in Visual Studio.  This is good.

SharePoint Online is being taken very seriously.  Over 1,000,000 users.  Glaxo is moving 100,000+ users to it.  Pretty much the whole set of end-user features is available in the cloud version, and some of the developer features are available (see the “Sandboxes” stuff in the demo section).  They are more than happy to support “mix and match” capability between hosted and on-premise environments.  Of course, this is probably also the ideal setup for them from a licensing standpoint.  You’re paying for stuff twice.

Microsoft *really* wants us to be able to build Internet-facing sites with SharePoint 2010.  Some interesting examples.  Kraft Foods has consolidated 200 web sites into one SharePoint infrastructure.  100M page views/month.  Marketing people are able to publish new content entirely without  IT involvement.  They actually have a new SKU they are launching to support this “SharePoint Server for Internet Sites”.

Ugh, a big slide of licensing soup.  I just don’t have the energy right now, but it looks like generally we’re fine internally and may be better off for external-facing stuff.  Also, apparently “SharePoint Foundation” is the new name for WSS.  I’m not sure if this helps or hurts in terms of the old confusion between WSS/MOSS.

Interestingly, Steve says that SharePoint today probably does not look that much like what their roadmap said 5 years ago.  They have really been pushed by their customers in directions we want.  That’s a good thing, and they seem happy to go with it.

Demos 

First big applause point of the day.  He’s running the demo on Windows 7!  Yay, no more having to setup server operating systems to do SharePoint development, or at least basic development.

SharePoint Designer now actually looks like an Office app, ribbon and all.  So he’s showing a concept called “External Content Type” which basically allows external databases/web services to be mapped into the SharePoint/Office universe.  This is kind of just the Business Data Catalog and the old Data Sources concept in SharePoint Designer.  It’s not clear from this demo how well this will work in the real world, but it certainly has potential.

Now he’s showing the integration with Visual Studio 2010.  It’s definitely.  There’s a visual web part designer, which should be pretty nice as a productivity enhancer for developers.  Much nicer solution building capability now.  Also, it looks like their using the “mapped” directory capability SP already has to let you add supporting resources like images and styles to your.

There’s a “developer dashboard” console that can be brought up on a SharePoint page now.  It has all kinds of super useful debugging information.  This will be *huge*.  Congratulations Microsoft, you caught up to the version of Plumtree they had 4 years ago, well almost.

Sandboxes are a new capability to allow certain groups of users more rights than they otherwise might have to deploy web parts and things without having full admin rights.  You can also monitor these for bad behavior and shut them down.  I suspect Microsoft was their own major customer for this feature because it will allow them to host SharePoint as a cloud-based service much more easily.

Web Content Management has been improved quite a bit.  Page editing now uses the ribbon UI.  They *finally* have a way to support XHTML (i.e. compliant) web pages.  Can change page layout on the fly (similar to picking slide layouts in PowerPoint).  The rich-text editing is now cross-browse and (allegedly) generates much cleaner HTML.  There is a built-in media player web part now.  Couple niceties – automatic spell checking for publishing pages.

They demoed a very click Silverlight web part to “search” a product catalog using the FAST search capabilities without typing any keywords.  It’s unclear how much development this took though.

QA

Q: Will their be a “Windows Update-like” page that has all the updates, service packs, etc?
A: Steve says “the right answer is ‘yes’”, but not sure of the actual answer.  Tom is clearly a bit embarrassed, but says they are working hard to make this better

Q: How will SP keep up with “web-speed” development cycles?
A: Steve basically thinks it’s a myth that development happens more rapidly just because it’s on the web.   He’s probably right

Q: What about social computing in SP (nothing like a softball question)?
A: Lots of social networking stuff in SP.  Steve takes the opportunity to plug FAST “semantic” search

Q: What are they doing to make governance better?
A: Tom says governance is mostly a process issue.  Steve shows why he is CEO and makes the cogent point that one of the most important things SharePoint Online will do is allow them to “industrialize” the processes  around supporting large SharePoint environments and then share it with everyone else.  Great point.

Q: How about Mac support?
A: The browser-based pieces should work across browser, including Safari.  There will always be things that work better

Q: Can  we use the new developer tools with the “old” SharePoint 2007?
A: Nope, but maybe in the future

Q: Teed up question from Tom to Steve (but very relevant) How willing are enterprises to embrace social computing?
A: Steve talks about a CEO of a Fortune 50 company that he went to B-school with whose CIO says “there will be no facebook in our enterprise”.  He basically says of course you don’t want your corporate data going on the actual Facebook and Twitter, but you should be able to feel comfortable putting those types of data on your own SharePoint environment.  They are trying to give us the ammo to make this case at the conference.  Let’s hope they’re successful.

The “Oh shoot” web part editor page

We were doing a WSS hotfix install tonight and got stuck in a situation where the psconfig upgrade after the hotfix install was failing on a custom mysite web part we deployed (only for 3 users for some reason).
I figured we should just be able to remove the web part from those My Site pages, since it’s really just a fairly generic set of instructional links, but was stymied by the redirect to the user’s public profile page instead of actually getting to the default.aspx for the user’s My Site.

I remembered seeing a page that comes up when a web part is erroring out in a way that makes the page unrenderable, and that page lets you remove the offending part. My trust search engine led me to Raghu Iyer’s aptly title post on the “Savior Web Part Maintenance Page”.

So for future reference (my own if no one else’s) if you cannot access a page and want to remove a web part, you can bring up the web part maintenance page by appending the query string “?contents=1” to the end of the URL. For example, go to http://mysite.example.com/personal/mylogin/default.aspx?contents=1. This will actually send you to an “spcontnt.aspx” page that’s in the _layouts directory and takes the host-relative URL to the page in question as a query string argument (e.g. http://mysite.example.com/personal/mylogin/_layouts/spcontnt.aspx?URL=%2fpersonal%2fmylogin%2fdefault.aspx).

I find the “contents=1” approach way more convenient though, and hopefully, going forward, way easier to remember.

SharePoint and Kerberos = Lots of 401s

Update: We recently moved our farm to Windows 2008 (64 bit) and this issue came up again. Only now there is a different mechanism for addressing it in IIS 7. Microsoft has a new KB article on Kerberos performance with IIS 7.

—————————-
At work we’re putting into place a fairly decent size SharePoint farm and trying to follow most of the best practices for enterprise deployments. This includes using configuring Kerberos to authenticate our Active Directory users. Our servers are all running Windows 2003 SP1 which is probably not terribly unusual. There are lots of walkthroughs on how to do this including this excellent one by Martin Kearn. Don’t worry, I’m not about to produce yet another one.

In fact, it’s really not all that difficult to get the basics working. Just make sure the service account you use to run your app pool has an service principle name (SPN) that matches the DNS name you’re planning to have people access the app at (e.g. sharepoint.mycompany.com should have an SPN like HTTP/sharepoint.mycompany.com associated with it).

I’m guessing a lot of folks would get this all setup, hit the site, make sure it authenticates correctly and be done with it. Since we are attempting to do a centralized global deployment though, I’m extremely wary of anything that may degrade severely in a high-latency environment. That means pretty much everything gets run through Fiddler, which (not to overstate the case) is pretty much the best single web application debugging/analysis tool ever. A quick access of our spiffy new environment through run through Fiddler showed some worrisome behavior. Pretty much every HTTP request was actually two requests – one that would receive a 401 Unauthorized response wanting to negotiate authenticate and one that sent a Negotiate header with the request and actually got a response.

This kind of thing adds up to poor performance pretty quickly in a WAN environment, and it’s not too hard to see why. Let’s say a “typical” SharePoint page contains 19 embedded elements (images, style sheets, Javascript files, etc) plus the page itself. Also, let’s assume that you have users in Europe accessing a site a farm on somewhere in the eastern US. That will probably leave you with a round trip time of something like 100ms. Since most web browsers will only open at most two simultaneous connections to a server, you’re looking at a minimum of 20/2*100ms or about 1 second of elapsed time just for the packets to zing back and forth on your WAN. This is basically pure overhead, since it doesn’t include any processing time in the data center or transferring your actual content. If you had turned on Kerberos so that you’re getting 20 extra requests that each get a 401 response, now you’ve added an additional delay of (at least) 1 second to all of your pages.

Since Microsoft’s recommended target time for a page response is 1-2 seconds, it doesn’t seem like it’s worth wasting an extra second on a bunch of redundant authentication requests. Fortunately there is a solution. It turns out IIS changed behavior in the transition from v5 (Windows 2000) to v6 (Windows 2003) in how it handles Kerberos authenticated requests. By default it requires each and every request to be authenticated, which is exactly the behavior we’ve been talking about. After a bunch of hours bumping my head against this problem, I finally stumbled up KB Article 917557 about slow performance with Kerberos authentication. There is a hotfix available that enables adding a registry value called “EnableKerbAuthPersist”. This will change the behavior of IIS so that it will only require one authentication per connection to the web server. That means as long as your are using HTTP 1.1 keepalives (and pretty much everyone should be) you’ll only see 1 or 2 requests that get a 401 response instead of 1 for every single element of the page.

Once we added this hotfix and key to all our servers performance is substantially snappier. It’s definitely satisfying to load a page or through Fiddler and see only 50 requests where there used to be 100. Since the KB article that helped with this problem was not especially Google-noticeable and not at all tied to SharePoint, I figured I would share this and hope it may help someone else dealing with the same issue. Please share your experience in the comment if you’ve dealt with anything similar.