Thursday, 29 October 2009

The directory is not a subdirectory of the root directory. (Exception from HRESULT: 0x80070090)

Issue
When developing a new Site Column in XML I received: “The directory is not a subdirectory of the root directory. (Exception from HRESULT: 0x80070090)”.


Problem
Somehow the Site couldn’t create the basic Site Columns, etc. When exploring I noticed that one of my Solutions was giving an error. I redeployed it using the '-force' parameter.

Solution
I actually didn't find a solution, somehow retracting and deploying the solution solved my problem. If you found or know any other explanation please leave a message!

Monday, 19 October 2009

Maintenance Plan in SQL Server 2005

Case
Sometimes things just won't be “so plain to get” as Microsoft thinks it is. I was working at a customer with no database administrator. They needed to clean up there log-file to create free disk space and to create a new back-up every day. So I started browsing about maintenance plans and found a good source.

i The Maintenance Plan Wizard in SQL Server 2005 enables administrators to perform the following maintenance tasks against SharePoint databases:

  • Check database integrity
  • Reduce a database
  • Reorganize an index
  • Clean up the history
  • Update statistics
  • Rebuild an index

We have tested these tasks and the effects that these tasks have on database schema and performance. The following table summarizes the results of these tests.

Task -> Safe to perform this task?

  • Check database -> Yes
  • Reduce a database -> Yes
  • Reorganize an index -> Yes
  • Clean up the history -> Yes
  • Update statistics -> Yes. However, this task is unnecessary because the SharePoint Timer service performs this task automatically.
  • Rebuild an index -> No. The task does not restore existing index options before the rebuild operation. However, you can use scripts that restore index options. Note This problem was corrected in SQL Server 2005 Service Pack 2.

Source: http://support.microsoft.com/kb/932744

Problem
This is the point where Microsoft (or maybe just me?) thinks that things are so easy. I created a new Plan and created all of the below objects:
  • Check database integrity
  • Create a Full back up
  • Reduce a database (should release the log file disk space)
  • Update the statistics
  • Clean up the history

Problem was…? Somehow the log file entries just wouldn’t be deleted during the shrink task, so no disk space was released! Am I wrong thinking that a Full back up would make it possible to delete log file entries? (You can leave a message at the end of this blog post ;-)

Solution
There was no other option… I asked a database colleague for some tips. With those tips I thought out a plan and created the following maintenance plan.

Now everything works like a charm!!!

Friday, 16 October 2009

QNH Game Race 2009



The GAME RACE was officialy started on 2.00 P.M.!!

Once again the annual battle between the titans of QNH Application Development & Solutions BV began in The Kosmos. They are longing to obtain the pressious RAD Race Cup.

This year the event is called the GameRace, because of the theme of the race. People are having to do there best with there programming skills like stragegy, algoritms and creative powers. They are challanged to build artificial intelligence that can max-out there score in a variety of daring games.



The seven competing teams are battling right now! You can follow there achievements on http://www.flyyourfuture.nl/webcam. Just take a peek and watch the webcams or stop for a visit, if you're nearby.


*** Edited 2009-10-19 ***
The proud winners!


Wednesday, 14 October 2009

How-to: Move your Content & Configuration Database

I spotted a great and complete article about moving your content and configuration database WSS 3.0/MOSS written by a colleague of mine, Ismail Cildir.

I hope it fulfills your desire for SharePoint knowledge :-)

(Dutch) http://ozgurpress.wordpress.com/2009/10/08/verhuizen-van-de-sharepoint-inhoudsdatabase-en-configuratiedatabase/trackback/

Thursday, 8 October 2009

Manage Shared Services (SSP) Administrators

How do I give an administrator his (or hers :0) Shared Services (SSP) permissions?

1. Login into the SSP admin site.
2. Add the user just like you would to any other site. Click Site Actions -> Site Settings
3. Under Users and Permissions click Advanced permissions
4. Click New -> Add Users
5. Enter your user and put them in the Viewers group and hit OK

i Note!
Now your user can log into the SSP and manage search settings, the Excel Service
Settings, and can view the various links list.

How do you give them more permissions? In order to do that you need to give them some more access:
1. Under User Profiles and My Sites click Personalization services permissions.
2. Click Add Users/Groups
3. Enter your users name select which permissions you would like to bestow upon them and click Save.

i Note!
What are all of these different permissions?

Create personal site gives the user the capability to create and use a My Site. Denying this permission makes the My Site link disappear take away this right from the users. All authenticated users were given this right by default.

Use personal features is not further discussed, but essentially this provides the My Links functionality and allows users to manage their Colleagues.

Manage user profiles this allows users to manage user profiles. Granting this permission lets users modify the profiles for this SSP. When you give users this right, they can access the links: User profiles and properties, Profile services policies, and My Site Settings.

Manage audiences lets a users click that handy little Audiences link. Once users are granted this permission you can set the schedule or define the rules for building global audiences.

Manage permissions this will let users modify Personalization services permissions. This is the same permission that’s needed to change these settings.

Manage usage analytics this gives the user access to make changes to Usage reporting. This feature contains a small bug. If the user doesn't have this right they can still open up the screen. Then if they make a change and hit ok they get a 403
forbidden error.

If you have MOSS Enterprise users still can't manage the BDC.
1. Click Business Data Catalog permissions from the main screen of the SSP
2. Click Add Users/Groups
3. Enter your user, select their permissions and click Save

Source: The SharePoint Farmer's Almanac

Friday, 2 October 2009

Protect me Explorer!

*sitting down on couch*

"A long time ago in a galaxy far, far away!"

(Every Star Wars Movie)

No wait ...


"A long time ago, yet somehow in the future..."

(Family Guy)

"... I was shown the Error that would 'make' my day!" :-)

Think you've seen it all? Think again. Outside those doors, we might see anything. We could find new worlds, terrifying monsters, impossible things. And if you come with me... nothing will ever be the same again!

(Docter Who)

Wednesday, 30 September 2009

Manage Central Administration (CA) Administrators

How do I give an administrator his Central Administration (CA) permissions?

Add users to the Central Administration site:

  1. On the Central Administration Home page, on the 'Site Actions' menu, click 'Site Settings'.
  2. On the Site Settings page, under 'Users and Permissions', click 'People and groups'.
  3. On the People and Groups: Farm Administrators page, on the 'New' menu, click 'Add Users'.
  4. On the Add Users: Central Administration page, in the 'Add Users' section, in the 'Users/Groups' box, enter user names, group names, or e-mail addresses. Separate each entry with a semicolon.
  5. In the 'Give Permission' section, select one of the following:

    Add users to a SharePoint group. Select this option to give users permissions by adding them to a group that has pre-defined permissions. If you select this option, click a SharePoint group in the corresponding list.

    Give users permission directly.
    Select this option to give permissions to users directly. If you select this option, select the check boxes next to the permission level that you want to give to users.
  6. Click 'OK'.

Source: Microsoft Technet

Tuesday, 29 September 2009

Message in the Information bar in IE7 & 8 when you browse to a MOSS 2007 site

You are hosting a Publishing Website in MOSS 2007? But your customers are complaining about ActiveX error messages when they're viewing you beautifull pages?

Consider the following scenario. You use Windows Internet Explorer 7 to browse to a Microsoft Windows SharePoint Services 3.0 site or to a Microsoft Office SharePoint Server 2007 site. The SharePoint site is located in the Internet zone. Additionally, the SharePoint site has online presence enabled. When you browse to the SharePoint site, you receive the following message in the Information bar in Internet Explorer 7:

The Web site wants to run the following add-on: 'Name ActiveX Control' from 'Microsoft Corporation'. If you trust the Web site and the add-on and want to allow it to run, click here...



The Problem
This issue occurs if the Name ActiveX control (Name.dll) is not added to the list of preapproved controls in Internet Explorer 7. The Name ActiveX control is included in the 2007 Microsoft Office system.

Microsoft however gives you a couple of client-side work around methods:
  1. Add the SharePoint site to the Trusted Sites list in Internet Explorer 7 on the Windows client computer.
  2. Add a registry subkey to the Windows client computer.
  3. Configure the master page of the SharePoint site on the front-end Web server.

    (Please browse to http://support.microsoft.com/kb/931509 for more information about above methods.)
The 3th method sounds like the right solution, because you can handle this server side. And it is in my opinion!

Unfortunatly Microsoft tells you to commend a few javascript functions. Correcting the problem this way may cause new problems though. Some other feature, method etc. can trie to use one of these methods and cause a javascript error.

Instead of removing the whole functions from the DOM, commend only the lines of code in these functions. Other features, methods etc., can still access the function, but does nothing, instead of causing more problem.

An other thing I don't prefer is changing the masterpage, because Microsoft notes there solution maight not always works.

This changes the method into the following steps:

If the SharePoint site does not require online presence, configure the master page of the SharePoint site to use the InitNoPresence.js file. To do this, follow these steps:

  • Copy the contents of the Init.js file to the Backup Init.js file on the front-end Web server.
    i Note! The Init.js file is located in the Drive:\Program Files\Common Files\Microsoft Shared\Web server extensions\12\Template\Layouts\1043 folder. (or 1033 ;-)
  • Start Notepad, and then open the Init.js file.
  • In the Init.js file, locate the following line of code.
    function ProcessImn()
    {
    if (EnsureIMNControl() && IMNControlObj.PresenceEnabled)
    {
    imnElems=document.getElementsByName("imnmark");
    imnElemsCount=imnElems.length;
    ProcessImnMarkers();
    }
    }

    function ProcessImnMarkers()
    {
    for (i=0;i<imnMarkerBatchSize;++i)
    {
    if (imnCount==imnElemsCount)
    return;
    IMNRC(imnElems[imnCount].sip,imnElems[imnCount]);
    imnCount++;
    }

    setTimeout("ProcessImnMarkers()",imnMarkerBatchDelay);
    }
  • Replace the code that you located in step 1c with the following lines of code.
    function ProcessImn()
    {
    /* if (EnsureIMNControl() && IMNControlObj.PresenceEnabled)
    {
    imnElems=document.getElementsByName("imnmark");
    imnElemsCount=imnElems.length;
    ProcessImnMarkers();
    }*/
    }

    function ProcessImnMarkers()
    {
    /* for (i=0;i<imnMarkerBatchSize;++i)
    {
    if (imnCount==imnElemsCount)
    return;
    IMNRC(imnElems[imnCount].sip,imnElems[imnCount]);
    imnCount++;
    }

    setTimeout("ProcessImnMarkers()",imnMarkerBatchDelay);*/
    }
Source: http://support.microsoft.com/kb/931509

Tuesday, 8 September 2009

Changing My Site User Storage Free Space

Problem
Some users where recieving a message from the SharePoint server about there My Site:

You are receiving this e-mail message because you are an administrator of the
following SharePoint Web site, which has exceeded the warning level for storage: http://yoursite.domain.com/. To see how muchstorage is being taken up by this site, go to the View site collectionusage summary: http://yoursite.domain.com/_layouts/Usage.aspx.

If you would browse to the _layouts/usage.aspx page, you will find information about the space the user is allocating. My My Site however is just created, so you won't find a mess in there (yet ;-)
















But how do we change the Storage Space of a My Site when the free space is empty?

Tempory solution
The owner of the My Site can browse to the ‘storage space allocation page’ and clean up some mess, like empting the recycle bin or removing old/unnessasery files.



Solution
Every My Site is created in it's own site collection. This way it's possible to change the storage available for your site.

Browse to the Central Administration (CA) and select the 'Application Management'-tab and browse to 'Site collection Quotas and locks'.

Or go to http://[CA-url]/_admin/sitequota.aspx



First choose the right site collection by clicking on the url in the right upper corner and then clicking 'Change Site Collection'.





Next you need to change the selected web application into the web application that is hosting the My Sites. Last you need to select the site collection of the right My Site and click OK.

Note: In the top of the page there is telling you
there are more then 10 site collections. You can use the arrow
to browse through all site collections.

Change the 'Site Quota Information' by changing the 'Current quota template' to Individual Quata and change the maximal storage space to 250 mb, for example.


Thursday, 27 August 2009

Request for the permission of type XXX failed

During the creation of a new Web Application I had a bit of a problem. I forgot to change the trust level. I got exceptions from every webpart that looked like this example:

Exception in UserControl:
System.Security.SecurityException: Request for the permission of type 'Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' failed. at Microsoft.SharePoint.ApplicationRuntime.SPVirtualPathProvider.GetCacheKey(String virtualPath) at Microsoft.SharePoint.Publishing.Internal.CmsVirtualPathProvider.GetCacheKey(String virtualPath) at System.Web.Compilation.BuildManager.GetCacheKeyFromVirtualPath(VirtualPath virtualPath, Boolean& keyFromVPP) at System.Web.Compilation.BuildManager.GetVPathBuildResultFromCacheInternal(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath
virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath) at xxx.customclass.method() The action that failed was: Demand The type of the first permission that failed was: Microsoft.SharePoint.Security.SharePointPermission The Zone of the assembly that failed was: MyComputer

If you encounter this exception then go to the web.config in the folder of your web application:

C:\Inetpub\wwwroot\wss\VirtualDirectories\<webappdir>

Then change the <trust level=" - tag as shown below.

Change:
<trust level="WSS_Custom" originurl="">

to:
<trust level="Full" originurl="">