If you get this error, it typically means that you didn't put the "15" in the "_layouts" directory path of some file you are referencing:
"_layouts/CSRListView/CSRListView.js"
Should be:
"_layouts/15/CSRListView/CSRListView.js"
Enjoy,
Chris
If you get this error, it typically means that you didn't put the "15" in the "_layouts" directory path of some file you are referencing:
"_layouts/CSRListView/CSRListView.js"
Should be:
"_layouts/15/CSRListView/CSRListView.js"
Enjoy,
Chris
Grr, what's up with the Distributed Cache not working Out of the box?
This was happening on my newly upgrade SharePoint Farm. Every time I would do a FBA login the service would crash (or so I thought they were related, but it just turns out the identity is attempted to be saved to the token cache, but doesn't matter to the overall login process). I found some posts online about client dlls not being correct. It seems like they may have deployed the dlls with the same version even though the code is different! Thinking that was the problem, I stopped the service in Central Administration, then I uninstalled the AppFabric 1.1 software from uninstall programs. I then downloaded a fresh copy of it and the 1.1 Cumulative Update. After that I started the service and it quit crashing. I did notice that it didn't deploy the dlls to the GAC, so the service runs, but when a web application tries to do anything with the cache…it fails by not finding the dlls (see below). For example, you will find that you cannot do in-place site upgrades, you will get the following error:
Exception: Could not load file or assembly 'Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
This happens if the OWSTIMER.exe can't find the AppFabric 1.1 dlls (site upgrade occurs in the timer service). You can add them to the GAC (recommended way) or add them to the BIN directory in the SharePoint root (where OWSTIMER.exe lives). You have to use the /gac option in the installer via commandline or you can also use the gacutil.exe utility to load them from the C:Program FilesAppFabric 1.1 for Windows Server folder.
Ok, so its up and running again right? No. You will get the following error:
Exception 'Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode<ERRCA0009>:SubStatus<ES0001>:Cache referred to does not exist. Contact administrator or use the Cache administration tool to create a Cache.
This is because a fresh install of AppFabric doesn't setup the default cache stores for SharePoint. That is done in the pre-req installer process. You need to run the following powershell command in a SharePoint Management Shell:
Add-SPDistributedCacheServiceInstance
Once this is done, you will find that the distributed cache may start crashing again (back to where we started damn it):
Application: DistributedCacheService.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: Microsoft.ApplicationServer.Caching.DataCacheException
Stack:
at Microsoft.ApplicationServer.Caching.VelocityWindowsService.ThrowCallback(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
You wont' find anything helpful in the ULS logs, but a deeper look into the event logs (Applications adn Services Logs->Microsoft->Windows->Application Server – System Services->Microsoft-Windows-Application Server-System Services/Admin) you will find an details error:
ErrorCode<UnspecifiedErrorCode>:SubStatus<ES0001>:Invalid URI: The hostname could not be parsed.
The config files for the distributed cache is here:
C:Program FilesAppFabric 1.1 for Windows ServerDistributedCacheService.exe.config
I made two changes to this file:
Then realized that I had some entries in my host file for the local server name. I took those out too.
I then switched back to the PowerShell window and ran the following:
Stat-CacheHost -Computername <ComputerName> -CachePort 22233
After waiting a few seconds, I run:
Get-CacheHost
You should see the service is in an "UP" state.
HostName : CachePort Service Name Service Status Version Info
——————– ———— ————– ————
blah:22233 AppFabricCachingService UP 3 [3,3][1,3]
Once you have verified this, open a browser to a sharepoint team site. You should see that you are now getting cache hits in the ULS logs:
11/25/2012 16:06:00.97 OWSTIMER.EXE (0x0510) 0x08B0 SharePoint Server General ahjne Verbose Looking for a cached value matching cb69ce2d-a0dc-4771-9af6-9559c61e007c in the Profile Property Cache cache. 5cc3e49b-e920-00b0-677e-a7fd04a0711b
11/25/2012 16:06:00.97 OWSTIMER.EXE (0x0510) 0x08B0 SharePoint Server General ahjnh Verbose Cache hit. 5cc3e49b-e920-00b0-677e-a7fd04a0711b
Chris
I recently upgraded our SanSpug.org and the instructor.architectingconnectedsystems.com sites to SharePoint 2013. As part of the process, you have to build a new farm and all the web apps, then attach the content dbs. As long as you have put your membership providers in the machine.config files (32 and 64bit), you shouldn't have any problems right? Wrong! With the same config as in 2010, I just kept getting this error:
An exception occurred when trying to issue security token: The security token username and password could not be validated..
It was looking for the old aspnetdb and localsqlserver settings. Turns out that ASP.NET 4.0 doesn't actually inherit the machine.config file changes. That was my perferred method in 2010 so I didn't have to put the stupid settings everywhere. Alas, my nice shortcut doesn't work in 2013 anymore. You will see that providers don't inherit for the web apps, including the securitytokenservice. That means you HAVE to put the membership and role providers in the Root web.config file.
I think this sucks…watch out for this…
Chris
Dear SharePoint Community,
Back by popular demand, the MSDN Forum Jam 2012 is ready to go! What is a forum jam? It is an all out battle for question answering supremacy in the Microsoft MSDN forums. This is the second Forum Jam I have hosted. The last one occurred almost three years ago…you can read about the last forum jam back in April 2010 here:
And the winners of that Forum Jam (which all are now movers and shakers in our wonderful community):
For your reading pleasure, I have also posted an updated MVP ranking on the MSDN Forums with all the latest MVPs (updated as of 11/2012) included here:
The rules for this Forum Jam will be the similar to the last one:
Tweet me at @givenscj to say you would like to participate by November 28th, 2012 (MVPs and Non-MVPS welcome)
If anyone else would like to contribute to the bounty let me know!
Let the community building begin!
Chris Givens
@givenscj
Please re-tweet this as #forumjam2012
Hi SharePoint Community,
In prep for our 2012 Forum Jam, here is a listing of your favorite MVPs (updated as of 11/19/2012) and their standings in the MSDN Forums. I always find it interesting to see where the "influential" MVPs stand in MSDN community contribution (please let me know if you are missing from the list or your stats are wrong). NOTE: This ranking says nothing about a persons' skills or how AWESOME they are (in most cases anyway). There are several at the bottom of this list that are great friends of mine and I respect a lot! You should know that being an MVP can come from any number of things including and not exclusively the forums:
You can reference the stats from two years ago here:
I have been to the last three SharePoint Conferences. For the 2011 one, I was actually a speaker for my role as the Sr Architect at eBay. You can find the complete post of eval results from that conference here:
But since I wasn't a speaker this year (because I have been buried in Government contractor/agency stuff for the past year) I couldn't talk about any of the cool things I have been doing publicly and nor could I post the speaker results to help people find the good sessions. Somewhat bummed about that, but I will have a ton to talk about at the next one!
I recently was reviewing the session PPTs and found some to be not so great, others wonderful and some AMAZING. I love giving credit where credit is due, and pointing out where their can be improvements. This blog post will stay with that common theme. Here's my review of all the SPC12 sessions with a CJG rank from 1-5. 5 being the best. A couple of notes, the rank gives higher weight to things that interest me and are new, the rank gives higher weight for powerpoints that could stand alone and weren't totally reliant on the "video". It is in my opinion that slides should be able to stand on their own! For developer sessions, unfortunately, I was especially hard being that I am from the dev side of the house (so…upfront…sorry if you are on the dev side for low ranking).
Some things I noticed as I reviewed the materials:
Hope you enjoy the review, it was enlightening for me, hope it is the same for you! As you can see, out of the 240 sessions, there are only 50 (20%) or so that I gave top honors that you should check out no matter what. Out of those, there are 8 that stand out as OUTSTANDING!
Top ranked sessions (in order of my favorite – notice Shupps wins again this year):
All the sessions reviewed:
Back by popular demand, here is the script to grab all the PowerPoints and Videos. This year the script shouldn't take down the site (like it did last year b/c everyone downloaded it and ran it at the same time) as they actually built it on Azure (blobs)!!!
The authentication part was quite a bit different than last year's because you needed to pass the wctx to azure after you were logged into LiveID. This then must be passed on to the MySPC website where you are then simply using an ASP.NET Session and a .ASPXAUTH cookie.
Once logged into the site, you must hit every session page. I did this for you already and all the valid session ids are in the "sessions.txt" file. If you find I missed one, simply add it to the file and re-run the script. After hitting a page, you will see that the links to the files are stored in an Azure Blob endpoint (http://hubb.blob.core.windows.net/f6e6035d-a0cd-42d4-aa62-c12756979e5f-published). The links to these end points expire after a small amount of time and have a querystring auth component. This means you need to download the files as you hit each page. If you wait too long, you will need to get the links again.
There are two important variables in the script (one is downloadPPTX and the other is downloadVideos). I'm not that interested in videos so by default, the variable is set to $false. Being that this is on Azure, I was somewhat surprised to see the performance wasn't that great. I would have though the files would download a lot quicker!
RAR File is attached below… be sure to run it a few times over the next few days…they still haven't posted all the powerpoints and videos.
UPDATE: Add the following to the script to handle special characters in your password:
#endcode the password
[Reflection.Assembly]::LoadWithPartialName("System.Web")
$encodedPassword = [System.Web.HttpUtility]::UrlEncode($password)
GetAuth $username $encodedPassword
Enjoy,
Chris
The SharePoint conference 2012 was this past week (11/11-11/15). It was one of my favorite conferences ever! For those of you that don't know the story, the conference got started off a good two weeks before hand for us. It started when I created a script to drag Dux around Vegas and create a Gangnam Style video. This slowly blossomed into a full production. We signed on 5 main actors: Myself (Chris), my wife (Lidiya), Dux Raymond Psy, Marcy Keller and Erica Toelle. Marcy was kind enough to put together an instructional video that we all practiced with the two weeks before the conference. I'll tell you…it was crazy difficult. Dux went on to inquire with the SharePoint Conference organizers about a special Tuesday night performance as an opening to Bon Jovi – talk about pressure!
Sunday we started off from San Diego and drove up to Vegas. Luckily, we made it in 3:15 and got in around 1pm. We stayed in the Wynn and made the daily trip to the conference parking garage. We started off with our practice routine of Gangnam Style for the flashmob. We had two performances scheduled for the week (one flash mob on Monday and the Tuesday night opening for the attendee party – we actually did quite a few more). Truth be told…I never actually made it to any sessions the entire week! I had too many meetings and catching up with friends and business partners. I did however get the chance to stop by all the product booths and get the low down on some of the new kids on the SharePoint block. It took me 2 conference days to do it! There were some real jewels that I was able to find. Here is my ranked list:
Honorable and notable mentions:
Not so honorable mentions:
Here are some videos and pictures from the week (watch for links a bit later):
You can also check out my PowerShell script for getting all the PowerPoints and Videos here:
Enjoy,
Chris
The stuff candy marketing dreams are made of…here's the bounty this year:
74 – Whoppers
47 – M&Ms
42 – Reese's
40 – Crunch
36 – Milky Way's
34 – Snickers
32 – Hershey's
25 – Twix
23 – SweetTarts
20 – KitKats
15 – Twizzlers
15 – Swedish Fish
14 – Tootsie Rolls
13 – Heath
12 – Almond Joy's
10 – Skittles
9 – Muskateers
5 – Ring Pops
…lots of misc…
Since no one answered my question on twitter, I went back to trying
to figure this out on my own. When you are editing the AD Connection on
the editdsserver.aspx you may run into an issue with not seeing all the
nodes in an OU. Why? Well, its because there is a limit on the number
of nodes that are queried. One may ask…"can I change this"?
The
answer is no. You can change the timeouts in various different ways,
but there is NO WAY to change the node limit. Why? Because in the code
for the EditDSServer.aspx page, you will find a method called
"_DoLdapDirectorySearch". This has a HARDCODED hex value of "0x3e8".
What is that in decimal? Its 1000. Yes, you read that right, the hard
coded node limit is 1000 nodes. Why is this a problem you ask? Well,
if you needed to exclude a set of service accounts in an OU container
in your "User" OU, you won't be able to see it because it likely starts
with an "S". If you scroll down the list, you will see the nodes end
around "M".
Being that I am the one and only "CJG", I think to
myself, let's do this through ForeFront! Easy enough, fire up
MIISClient.exe, change the values (b/c it DOESN'T have a limit), remove
the OUs and click Save. I'm thinking, yeah…that was easy. No,
Forefront will also un-check the "Users" OU when you do it like this.
Then you lose the 1000s of users you had in the sync. This is obviously
very bad (worse than having the service accounts in the list).
So
what do you do? You find a blog post like this one by @mosshater that
shows you how to get at the AD connection to be able to set the naming
contexts:
http://mosshater.blogspot.com/2010/10/powershell-add-active-directory.html
This is SOOO painful…
Chris