Load Testing SharePoint with Visual Studio Online

I recently discovered that Visual Studio Online includes 15000 "Virtual User Minutes" for load testing each month for free. I've never used the load test feature of Visual Studio before, so I decided to try it to simulate high user loads on our SharePoint farm. Here is a step-by-step guide.


  • A Visual Studio Online account
  • Visual Studio 2013 Ultimate (Performance and Load Testing is not included in any other edition)
  • SharePoint Site which is accessible via Internet


In Visual Studio 2013 go to File->New->Project and select "Web Performance and Load Test Project" in category "Test":


This will create an empty "Web Performance Test". To start recording what the test should do, click "Record" and an IE Browser window will open.

image image

Now open your SharePoint site and click around to simulate some browsing. After that click "Stop" to come back to Visual Studio where you will see all requests in your Web Performance Test.

You might not want to record some "SharePoint" noise, so there is a settings page to exclude some stuff. Go to Visual Studio Tools->Options->Web Performance Test Tools->SharePoint:


To execute this Web Performance Test as a load test with simulated users, you have to add a "Load Test" to your project:


The wizard will guide you through some configuration options. Set the load to 250 users as shown below for a test running one minute will cost you 2500 virtual user minutes. So keep in mind that the free plan of Visual Studio Online gives you 15000 virtual user minutes per month. Be careful with the constant loads settings, because all virtual users will submit the first request as fast as possible, so the result may not reflect real usage scenarios. For more users use the "Step" pattern to start with a few users. They will automatically increase over time.


I set the test mix model to "Based on sequential test order" because there is only one test in my project which every virtual user should run. In the next step add the existing test to the load test.

I leave Network Mix, Browser Mix and Counter Sets untouched. In Run Settings I set the "Load test duration" to 10 which means, every virtual user will execute the test in a loop for 10 minutes.


With these settings, your "Virtual User Minute" budget of 15000 in Visual Studio Online will decrease by 2500 (250 user * 10 minutes).

Run in the Cloud

Now add a .testsettings file (Local.testsettings already exists) via Add->New Item and search for test:


Give it a name like "CloudTestSettings". A wizard will open where you can select "Run tests using Visual Studio Team Foundation Service" (what is now "Visual Studio Online" as of November '13).


Make sure, your newly created .testsettings file is the active one by right click on it and select "Active Load and Web Test Settings":


Ok, that's basically all you have to do. If you already know some values and want to visualize threshold violations, you can open the load test and add threshold rules to one ore more counters. For example to the average page load time.


To run the load test, just click "Run Load Test":


After the test is completed the result panel show all the details about the test. You can add counters to graphs and see a summary and details. I'm interested in the page response times, so I switch to only one graph layout. Here you can see all the different pages and there response times.


You can download the report to Excel to analyze it even further.

Can't connect to SharePoint on Windows Phone 8

I have just installed a new SharePoint 2013 machine and restored an existing (2013) ContentDb to this machine. Everything works fine except: I cannot connect to it on my Windows Phone 8 anymore.


However, this worked perfectly well before the move. I tried a lot to figure out, what the problem was. Result: The Certificate Authority (or better the issued certificate) is the reason.





The new CA I've also created is on Windows Server 2012 R2. The old CA was on Windows Server 2012. And R2 adds automatically a "CRL Distribution Point" extension to all issued certificates. My CA is private so Windows Phone had no chance to connect to any URL specified within the extension.


Disabling the CRL Distribution Point extension for all issued certificates (or make the URLs available for your phone). Here are the steps:

Open your CA, edit the properties of the root node, go to the "Extensions" tab and uncheck "Include in the CDP extension of issued certificates:


Windows Phone 8 OneNote sync with SharePoint 2013: Error code e4010647

It was really frustrating. With Windows Phone 7.8 my OneNote synced perfectly fine with SharePoint 2013. Now I have a new Windows Phone 8, but OneNote synced only the sections and then gives an error (e4010647) and shows "Never synced".


Ok, I couldn't find any solution on the Internet, but after some testing with authentication settings I got it: My SharePoint WebApp has "Anonymous access" enabled. However the site collection itself does not allow anonymous access. After modifying the "Authentication Provider" and disabled "Anonymous access" everything is back to normal.

Why? I have no idea…

Windows Phone 8: StadtRAD Finder

Leider gibt es für das StadtRAD in Hamburg bisher nur iOS und Anroid Apps. Ich habe daher die Gelegenheit genutzt und eine Windows Phone 8 App gebaut. Sie zeigt den aktuellen Standort und alle Standorte der StadtRAD Stationen inkl. der Anzahl verfügbarer Fahrräder.

Einfach downloaden und testen:



How to fix scrolling (and other) issues in Chrome on SharePoint 2010

Today I looked deeper into the issues our users have with SharePoint 2010 in Chrome. It seems that Chrome does not always (strange…) executes "onload" within the body tag. However, SharePoint needs to execute one important javascript function there to enable scrolling, the ribbon and some other stuff (also the "ExecuteOrDelayUntilScriptLoaded" function)


We are already using jquery so this one is the best solution:

   1:  jQuery(document).ready(function () {
   2:      if (window.chrome) {
   3:      	jQuery("body").removeAttr("onload");
   4:      	if (typeof (_spBodyOnLoadWrapper) !== 'undefined') {
   5:  		        _spBodyOnLoadWrapper();
   6:      	}
   7:      }
   8:  });


Special hint: Do not use "$" in "global" javascript files for jQuery, but instead the explicit "jQuery" object, because in some library types (e.g. Picture Library) the $ has a different meaning in SharePoint.

Added "if (window.chrome)" to check for Chrome, because InfoPath Workflow Init Forms are not working as expected if the _spBodyOnLoadWrapper is not executed within the real body onload. So they are not working in Chrome.

Delete project from tfs.visualstudio.com

Just a short reminder for me, how to delete a project from tfs.visualstudio.com, because there is no UI to do that:

Open a Developer Command Prompt and type:

tfsdeleteproject /force /collection:https://xxx.visualstudio.com/DefaultCollection "YourProjectName"

Chocolatey: Package Manager für Windows

Aus Linux kennt man ggf. apt-get um Software/Tools zu installieren. Für Windows gibt es eine wirklich gute Alternative: https://chocolatey.org

Das ganze basiert auf http://nuget.org dem Microsoft .NET Package Manager. Es gibt bereits extrem viele Pakete und man kann problemlos eigene Pakete erstellen und hinzufügen.

Um Chocolatey zu installieren, einfach folgendes in die Kommandozeile eingeben:

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin

Zum Test habe ich direkt Proxy Switcher als Paket hinzugefügt. Um Proxy Switcher zu installieren muss nun einfach folgendes eingegeben werden:


SPSync v0.8

SPSync is now available in version 0.8. It has a bunch of bug fixes and a better tested sync engine.
Also it is tested on Windows 7 and Windows 8 against SharePoint 2010 and SharePoint 2013.

With Office 2013 you get SkyDrive Pro for free which is the Microsoft tool to sync a local folder with a SharePoint document library. However, this tool has some disadvantages:

  • Obviously, you need Office 2013. SkyDrive Pro cannot be downloaded independently.
  • You can define only one root folder, where all of your document libraries will show up. With SPSync you can sync any folder you like.
  • With SkyDrivePro you have no control what happens with conflicts. In SPSync you can define whether you would like to see a conflict dialog, always overwrite local changes or always overwrite remote changes.

SPSync now has a new installer and is no longer a "ClickOnce" application. It does not require administrator rights.

Download here: http://spsync.net

To provide feedback use support (at) spsync(dot)net or the FEEDBACK button on http://spsync.net

Access Services 2010: There was an error modifying list schemas

I have an Access 2010 database published to SharePoint 2010. It is a large database, but it is working fine... as far as Access can be fine. I made a lot of changes and added some more columns to one of the tables. I published the database again and everything worked ok.

To make a backup, I saved the database as a local database. Now if I try to publish the same local database to another site in SharePoint I get the following error message:

There was an error modifying list schemas. Failed to rename the field 'ID' on the SharePoint list 'xxx'

Even though the compatibility checker said everything is ok.

Bing doesn't seem to find a solution, so I tried Fiddler (by the way: great new website) to test what exactly is going on during the publishing process.
And here we have the detailed error message (click to enlarge):


So what exactly is "_OldID2" and why is there a column I cannot see within the Access Client? And why are there too many columns of some type?

I tried to hide all columns, but modifying the view on the list does not seem to have something to do with it. Then I switched the columns back on and see one column which is not my column and I've never seen it before: "_OldID" Wow, why is Access/SharePoint complaining about _OldID2, but all I can see is "_OldID"?

The Solution

Well, it's really simple: Unhide and then delete the "_OldID" column. That fixed it and it can now be published again. Thank you Access for being such a great tool… not.

SharePoint 2013: SkyDrive Pro couldn't sync this library

On SharePoint 2013 I have a basic document library with enterprise keywords enabled and one additional "People or Group" column set to "People only" (not as a multi value field).

Now I try to sync the library with SkyDrive Pro. It fails with the following error message:


The message details:

The query cannot be completed because the number of lookup columns it contains exceeds the lookup column threshold enforced by the administrator. Error code=0x80070093; Error source=Groove

Ok, if you count the enterprise keywords and the people field as lookup fields I have 2. The default "List View Lookup Threshold" (Central Admin –> Web Application –> Resource Throttling) is 8.

Then I tried to set the value to 16. Bam! Now everything is working again. I have no idea why and how 8 shouldn't be enough with my 2 additional columns (which are of course not even lookup columns).