Thursday, September 24, 2009

Can not enable anonymous access for internet zone

Just to clarify the relationship between alternate access mappings host headers and SharePoint Zones…

While configuring multiple frontend servers and different zones, including Internet. I discovered that I could not set the anonymous access to my site in the Internet Zone.

What puzzled me was the fact that I could not set the anonymous access rights on the site after enabling anonymous in the Zone. The choices were all disabled. (_layouts/setanon.aspx)

Not_Anon

Not having my mind correctly set I missed the fact that I was configuring the site collection using a url that was NOT configured for the Internet zone. I was only configuring using the default zone (or the server name as host to be specific)

The host header and the alternate access mappings is the only link that SharePoint has to discover that the site actually is in a zone. It all makes sense, but when you are configuring your site before the DNS entries are set you may stumble on this little problem…

By using the correct hostname, that is referring to the internet zone in my browser it all worked out.

OK_Anon

Tuesday, September 22, 2009

ASP.NET error after installing a SharePoint WFE

After installing a new SharePoint Web Frontend you  receive a “normal” ASP.NET error message the address in the browser will point to the _Layouts “directory”, so SharePoint is in play.

When studying the event log the message contains “Could not load file or assembly RSSharePointSoapProxy…”

This is a Assembly that is used by the SQL Server Reporting Services Integration for SharePoint.

The problem: Reporting Services is installed on the SharePoint Farm and the binaries does not exist on the new frontend server.

Solution:

Start by downloading the Microsoft SQL Server Reporting Services Add-in for Microsoft SharePoint Technologies for SQL 2005 or SQL 2008 (May 2009 release) (SharePointRS.msi or RSSharePoint.msi)

Note: The description below is based on the 2008 version of the Add-in

Do not run the MSI as a ordinary setup process, this will result in a error message in the event log and a rollback of the package. The error indicates that the SERVERNAME$ can not logon to the database.

Start the MSI with the parameter SKIPCA=1 this will extract the file rsCustomAction.exe to the TEMP folder of the current user.

To install the binaries and configure the Reporting Services run rsCustomAction.exe /i

Be sure to run as a user that has rights to the SharePoint Site Collection.

After the executable finishes your new SharePoint Front End should display the SharePoint sites normally.

By running this application the Solution will be redeployed on the existing servers as well, even upgraded if possible.

For more information see the readme bundled with the Add-in

Access denied when configuring SharePoint WFE

When adding a new Web Front End Server to a SharePoint Farm you may get a access denied error in step 2 when connection to the configuration database. This error will occur regardless of the configuration entered before the configuration begins. (The search for configuration database is successful.)

Configuring_SharePoint

Before starting SQL Management Studio or another tool to check permissions on your database server. Check the version of the existing SharePoint environment.

You will get this error if the new SharePoint server binaries is another version than the existing system. Remember to update the SharePoint installation (Both WSS and MOSS) before running the SharePoint Products and Technology Configuration Wizard.

Refer to the SharePoint AdminWiki to get your SharePoint Version.

Monday, August 24, 2009

Error when configuring SharePoint Services Search Service

You probably know this already this is just a notice to self :-)

When configuring a SharePoint Services Server running everything locally you normally specify the user accounts only by the username during the installation and configuration.

When looking at the Services in the server you notice that there is one service that is not starting. The “Search Service”. You click on the start link and the configuration page pops up. You enter all the user settings and click on start. After a second or two a rather generic error message appears SPSearch(Username).

After rechecking passwords and usernames you try again, with the same result…

The problem is that the “Service Account” username must have domain\user or server\user syntax (server\user in this case)

The “Content Access” Account can be specified using the username only (But it does not hurt to add the server name as well)

Search_Service_Account

Thursday, August 6, 2009

Change a users property in Active Directory

In order to change a users property you must get the DirectoryEntry for the user. Below are some simple code that I have been using in my “AD import Tool”

GetUser – Returns a DirectoryEntry that can be used to get and set properties for a user object i AD (Click for a larger image, code is at the end of the post)

GetUser Example

The function used in a wrapper class along with other code mainly gathered in the Howto: (Almost) Everything In Active Directory via C# at CodeProject.

 

ADHelper GetUser Example

You can download the ADHelper class here

Note: This is a only a simple example. It has not been tested thoroughly for memory leaks.

Can not find property “mobile” in Active Directory

While developing an application used to import mobile phone numbers from a CSV file to Active Directory I discovered that the attribute “mobile” did not exist for users where this property never had been used before (Never been updated by other tools such as the Active directory MMC snap-in etc.)

The application uses the standard System.DirectoryServices.ActiveDirectory assembly shipped with .NET 2.0. (See the article on CodeProject Howto: (Almost) Everything In Active Directory via C# for more code)

mobile

The source code after gathered the Directory Entry for a user. Is used to update the mobile attribute:

mobile

Do not forget to CommitChanges, Close and Dispose…

Friday, July 31, 2009

Tweaking the Quicklaunch menu with JQuery

The standard Quicklaunch menu or the <SharePoint:AspMenu> has some limitations regarding layout and dynamic display… Microsoft has released the code to the menu in order to make the menu more customizable (The reason for the publication of the source code is the the fact that the control is marked as sealed and is therefore not eligible to be used as the base class for derived types.) Read my other post on how to use this code to highlight the selected menu items.

When using a WSS environment the menu has further limitations regarding the url of a root element. The “problem” is that all menu items must have a url. The easy fix for this is to make all your level one URL’s like “/#” This will result in a link to the same page, but there will be a postback when a user clicks on the link.

In some scenarios you do not want, or you can not modify SharePoint using Features and compiled code.

So how do we modify the menu without writing any C# code? We use the JQuery library to parse and tweak the HTML already generated by the aspmenu control

The main part of the JQuery code is made by Paul Grenier and filed at EnduserSharePoint.com. Be sure to check out the other JQuery and SharePoint related articles!

The solution looks like this when finished

JQuery_Menu

To make the menu look like this I used one JavaScript library, a modified CSS file and a modified Masterpage. The masterpage modifications is minor and not a part of the dynamic experience…

The masterpage was modified to link to the two java libraries used, one for the JQuery library and one for the script from Paul Grenier.

linking_JQuery

I have modified the script a little in order to make the empty headers act as you clicked on +/- (The modifications are simple and can surely be made better, but it is my first JQuery Code)

JQueryMod

When a link is modified in SharePoint Services and the address is /#! the link will not behave like a normal link but expand/collapse instead.

jquery_empty_link

This was a big eye opener and definitely my start down the “JQuery Lane” It is so much you can do with so little code…

The files used can be downloaded here