Tuesday, April 29, 2014

The user is not farm administrator. Please address the validation failures and try again in PowerPivot Configuration Tool in SharePoint 2013

This can be solved using two methods

First one is run the configuration tool 


You need to have user account in SharePoint Central Administration Site Collection Admin group.

You can go to central administration site collection and go to change site collection administrators


and select central admin web application


then add the corresponding user as a secondary administrator.


Wednesday, April 23, 2014

How to create Custom Web Service WCF (REST) in SharePoint 2013

SharePoint native web services can be access via _vti_bin mapped path. Deploying our custom service to this mapped path enables mapped features such as

But SharePoint Project template does not contain wcf project therefore we need to do have some work around to archive this.

Step by Step guide to create a custom SharePoint REST service

Create a Empty SharePoint Project by Selecting as Farm Solution


Then right the Project and Add –> SharePoint Mapped Folder –> select ISAPI and click ok


Then create a sub folder under ISAPI that is use to deploy our service.


Now we need to create wcf service and it’s interface. therefore add two classes named ServiceApiToken.cs and IServiceApiToken.cs.

using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;

namespace ApiToken
public interface IServiceApiToken
[WebGet(ResponseFormat = WebMessageFormat.Json)]
string GetResponse();

using System;
using System.Net;
using System.Runtime.Serialization.Json;
using System.Text;

namespace ApiToken
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ServiceApiToken : IServiceApiToken

public string GetResponse()
return "Executed";

After implementing the Service and Service interface you need to build the project and find the public key of the assembly. (You need to find the fully qualified assembly name)

For an example you can open visual studio command prompt and use sn –T and dll path to find the public key token.


finally we need add service end points and web.config


you can not find svc template in SharePoint Project Template. thus you need to add txt file and rename as a svc. In my case i renamed it as a token.svc.

Token.svc file you need to specify the Public token you found.

<%@ Assembly Name="ApiToken, Version=, Culture=neutral, PublicKeyToken=fe8eeb150d52c287"%>
<%@ ServiceHost Service="ApiToken.ServiceApiToken" %>

for web config you need to add txt file and rename it as a web.config

          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        <behavior name="customApiToken">
      <service name="ApiToken.ServiceApiToken" >
        <endpoint address="" behaviorConfiguration="customApiToken" binding="webHttpBinding" contract="ApiToken.IServiceApiToken">
            <dns value="localhost" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

after you can deploy the solution and access from _vti_bin folder.

Friday, April 4, 2014

Open SharePoint App Url as a Modal Dialog in SharePoint 2013 (SharePoint App)

In SharePoint 2010 we used to JavaScript to open the Url in a modal dialog. in SharePoint 2010 we used to write JavaScript to make the  Url open in the modal dialog. If we write EditControlBlock actions we used JavaScript as follows

                Title="My Custom Action"
               ImageUrl="/_layouts/images/editicon.gif" >
<UrlAction Url="javascript:OpenPopUpPageWithTitle('{SiteUrl}/_layouts/myCustom/default.aspx?List={ListId}&ID={ItemId}', RefreshOnDialogClose, 600, 400,'My Custom Action')" />

In SharePoint 2013 using JavaScript encountered

Error occurred in deployment step 'Install app for SharePoint': There were errors when validating the App Package.

Thus for SharePoint 2013 we need to use three special attributes in CustomAction

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction Id="a266876f-6356-4342-91a3-ef3d55b1e570.MenuItemCustomAction1"
                Title="Invoke &apos;MenuItemCustomAction1&apos; action"
    Update the Url below to the page you want the custom action to use.
    Start the URL with the token ~remoteAppUrl if the page is in the
    associated web project, use ~appWebUrl if page is in the app project.
    <UrlAction  Url="~appWebUrl/Pages/Default.aspx?{StandardTokens}&amp;SPListItemId={ItemId}&amp;SPListId={ListId}"/>