MOSS 2007 setup may crash on 64 bit Windows 2003

MOSS 2007 setup program may crash on 64 bit Windows 2003. You can get the following error message:

Setup did not complete successfully. We are sorry for the inconvenience.

If it is happening with you then just check one thing:

  • Open Terminal Services Configuration.
  • Click Server Settings.
  • Right-click Permission Compatibility, and then click Properties.
  • Select the Full Security check box, and then click OK.
Now you should be able to install MOSS 2007. Please note that directly changing the Terminal Services Configuration settings can be dengerous. So, be very careful before changing.

Changing IIS Emulation Modes

In 64 bit Windows 2003, you may need to change the emulation mode of IIS depending upon the cases and conditions. To change the IIS emulation mode to 32 bit to 64 bit and vice versa, do the followings:

  • Open command promp and run the following command
    cd C:\Inetpub\Adminscripts (I am assuming that C is your windows drive)
  • cscript adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
    (to make it 32 bit)
  • cscript adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 0
    (to make it 64 bit)
  • iisreset

When ReportServer.resx is gone

I recieved the following error which I never experienced before in our Sharepoint portal which has SSRS configured in MOSS integrated mode:

The resource object with classname "ReportServer" and key "SharedDataSource" was not found.


After searching for a while, I found that the ReportServer.resx file was not there inside the App_GlobalResources folder in the virtual directory of the respective portal. I just copied the ReportServer.resx from App_GlobalResources folder under wwwroot and finally pasted it inside the portal's virtual directory. Problem suddenly vanished.

Capacity Planning for MOSS 2007

For a fresh MOSS Administrator like me, it's very important to know the maximum capacity of sharepoint objects like lists, libraries, pages, sites, users etc and to get the optimum performance benefit upto these limits. Limits that are used over here are can be used to design a portal or a farm to get the best out of MOSS 2007 and crossing this limit may cause MOSS 2007 to create performance bottlenecks:

Site collections (Database scope) : 50000

Web sites (Web site scope)  : 2000

Web sites (Site collection) : 250000 (Nested Subsites)

Documents (Folder scope) : 2000

Documents (Library scope) : 2 million (Nested Folders)

Users ( Web site scope) : 2 million

Items (List scope) : 2000

Web Parts (Page scope)  : 100

Web Part personalization (Page scope) : 10000

Document size (File scope) : 50 MB  (2 GB if WSS SP1 is applied)
Checkout this link: http://blogs.msdn.com/bgeoffro/archive/2008/03/19/list-attachments-over-50mb-need-more-than-an-increase-in-maximum-upload-size.aspx 
 
Download Sharepoint Capacity Planning Tool from here: http://www.microsoft.com/downLoads/details.aspx?familyid=DBEE0227-D4F7-48F8-85F0-E71493B2FD87&displaylang=en
 
Before installing Sharepoint Capacity Planning Tool, you need to download and install Microsoft System Center Capacity Planner 2007. Use the following link to download:
http://www.microsoft.com/downloads/details.aspx?FamilyId=E754F35D-59DB-4BC4-8386-E83E66A16FAD&displaylang=en

Download the ebook called "Planning and architecture for Office SharePoint Server 2007, part 2 ":
http://go.microsoft.com/fwlink/?LinkID=85548

Get the whole bunch of freely downloadable content related to MOSS 2007:
http://technet.microsoft.com/en-us/library/cc262788.aspx

I  hope this helps you in someway.

Deleting an user's mysite

Recently I had a requirement to delete a user's mysite as the user had left the organisation. The simplest way I found was to directly go to the sharepoint mysite by using the following url:

http://(mysite_url)/personal/(user_name)/_layouts/settings.aspx

The username should not include the domain id.

Clicked on "Delete this site" option in the highlighted oval and the job was done.

Sharepoint 2010 public beta is out

There is a good news friends. Few days ago, I got a newsletter from Microsoft and I came to know that much waited Sharepoint 2010 beta version is available to downloaded. You need to get registered yourself first if you don't have the Windows Live ID. There are true trial versions to be downloaded. One is Intranet and CAL Version and the other one is Internet Version. Well the Internet Version may cost you around 561 MB. I have downloaded and it is the time for me to try it. Meanwhile, you can check the following link to download brand new Sharepoint 2010 beta:
http://sharepoint2010.microsoft.com/try-it/Pages/Trial.aspx

Some facts on Sharepoint 2010

By following Lee Richardson's blog, I came to know about few good and few shocking news about Sharepoint 2010. Lets start with some good news:

(i) Sharepoint 2010 will have inline list editing with AJAX Support.
(ii) Workflows created using Sharepoint designer can be resued by the same way what Visual Studio does
(iii) Sharepoint 2010 will support ASP.NET Data Services API.
(iv) BDC will also insert or update the data.
(v) You can edit Sharepoint Solutions without touching XML! Whooo!!!

To me, shocking news is related to the requirement part:
(i) Windows Server 2008 will be needed. So what will happen to me if I have Windows 2003?
(ii) 64 bit SQL Server 2005/2008 is needed.
(iii) There will be no support for Sharepoint 2010 in IE6. I am not sure whether it is because of AJAX or not.

HTTP/1.1 404 Connection: close Date: Tue, 19 May 2009 05:36:09 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET MicrosoftSharePointTeamServices: 12

You may recieve the following error after creating a web application in MOSS 2007:

HTTP/1.1 404 Connection: close Date: Tue, 19 May 2009 05:36:09 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET MicrosoftSharePointTeamServices: 12.0.0.6219

It probably means that there is no site collection created for the newly created web application. So just go to Central Administration >> Application Management >> Create Site Collection. Create a site collection under the web application and you will stop recieving the error.

Error connecting to undo manager of source file

This error is very confusing and irriritating as it does not give any clear indication about what the problem is. I got this error when I was using Visual Studio 2008 to compile and run a web application. Steps that I followed to overcome this issue were as follows:

(i) I deleted the source file (designer.cs) from the project. But before that, I took a backup of the designer.cs file to be in a safer position.
(ii) Then I right clicked on the ASPX page and select "Covert to Web Application". Finally, I compiled the page and executed it within Visual Studio without the error.

The report server cannot decrypt the symmetric key that is used to access sensitive or encrypted data in a report server database...

In SQL Server Report Manager page, sometimes you may recieve the following error:


Don't worry. Just go to SQL Server Reporting Services 2008 Configuration Manager. Go to Encryption Keys tab. Click on the Delete Encrypted Content button. It will sove the issue.

New Features in ASP.NET 4.0

ASP.NET 4.0 is bringing few exciting features that any ASP.NET developer can be interested to explore. So check out the new features of ASP.NET 4.0 by following the links shown below:

http://www.asp.net/learn/whitepapers/aspnet40/[^]

Download the whitepaper at:
http://download.microsoft.com/download/D/E/D/DEDB44F1-230D-456C-A4FC-D20914D38990/ASP.NET4.0_and_Visual_Studio_2010_Web_Development_Beta_1_Overview.doc[^]

Sharepoint development improvements in Visual Studio 2010

Coding in Sharepoint is not so easy as developers get very minimum support from Visual Studio. For example, if a developer has to make a Web part then he or she has to go to Visual Studio and write down plenty of codes for creating a single control. Manytimes we also use SmartPart right. Hopefully, Microsoft Visual Studio 2010 will offer various features that will make Sharepoint developers' life much more comfortable. I am quickly listing and briefing all those:

  • Web Part Designer: Developer will get designer support for creating web parts. It will work quite similar like the Smart Part but in a better way.
  • Debugging: Debugging Sharepoint applications will be done by "F5". Yeppi, it will be same like any other program in Visual Studio.
  • Sharepoint Server Explorer: All Sharepoint items like lists, document libraries, features and templates will be viewable with in Visual Studio and developers can change and manipulate it directly. Isn't it good guys?
  • WSP Import and Creation: There will be no need to create WSPs manually. Those will be created automatically.
  • Workflow Integration: A new ASP.NET Workflow Initiation Form for the Workflow project will be available with the designer support.
  • Packaging Editor: Package Explorer will be integrated which will support packaging and structuring various Features and WSPs.

    For more information on this, you can visit the following link :
    TechEd EMEA 2008 Keynote, Including SharePoint Tools for VS
  • Microsoft SharePoint 2010 is coming

    Microsoft recently announced that they are going to remove office word from the next version of SharePoint Server. As part of the Exchange Server 2010's public beta realease (and 14 waves of products), they have also announced about the next version of SharePoint Server and they are calling it as Microsoft Sharepoint 2010. What about the MOSS word? It sounds interesting as they think that office word may confuse users. It's not a big issue but definetely we all are waiting for the next version of this product. Technical preview will be relased in the third quarter of 2009 and we can expect the final version on somewhere around first half of 2010. Following links can be useful in this context:

    http://blogs.msdn.com/sharepoint/archive/2009/04/14/microsoft-sharepoint-14-is-now-microsoft-sharepoint-2010.aspx

    http://www.microsoft.com/presspass/features/2009/Apr09/04-15Office2010.mspx

    ReportBuilder's RSAccessDenied error in SharePoint Integrated Mode

    We have an environment where we are wirking with SSRS as SharePoint Integrated Mode. While accessing SSRS Reports thorugh Sharepoint site, we had a requirement that the reports have to be opened using ReportBuilder to make some slight changes and deploy quickly without any dependancies. Well, opening a report using report builder is not an issue but whenever user is trying to run the report from report builder, it is showing the following error:





    Believe it or not, I spent almost 3-4 hours to find the issue. I thought it might be a user right related issue so I went to IIS and then try to implement the integrated windows authentication and other stuffs which I found by googling over the internet. But the issue was something completely different from what I was thinking.
    I went to SharePoint Central Administration -> Set Server Defaults (Under Reporting Services Section). I noticed that the Enable Ad hoc Report Execution option was unchecked. This was the culprit. By checking this option, finally report builder started running the report. But the surprising thing was that by following the error message it was very hard to determine about what exactly went wrong. Dias Alegré.

    Handling the error : "The form cannot be displayed because session state is not available."

    While developing Sharepoint Workflows, if you may recieve the following error:

    "The form cannot be displayed because session state is not available."

    To solve this issue, just go to the web.config file of your Sharepoint site and add the following lines under the httpModules section within angular brackets:

    add type="System.Web.SessionState.SessionStateModule" name="Session"

    If this line is already there as commented then uncomment it and you will not recieve this error again.

    10 Powerful features for Sharepoint

    Windows Sharepoint Services 3.0 and Microsoft Office Sharepoint Server 2007 provide very powerful and wide range of feature riched applicationd which can be very useful for Social Networking and daily computing in any bussiness environment. In this post, I am going to list down 10 very powerful features freely available at codeplex:

    Podcasting Kit for SharePoint (PKS): Podcasting Kit for Sharepoint (PKS) helps to save time and money for an organization to deliver the next generation knowledgement management solution using social media. Any podcast enabled device along with the general web users can access this highly user interactive sharepoint feature. It is built with Silverlight 2.0 and Microsoft Expression Encoder 2.0 to provide the podcasting solution. To view more and to download the February 2009 beta edition, just go to http://pks.codeplex.com/.

    Community Kit for SharePoint(CKS): Community Kit for Sharepoint (CKS) is a bouquet of rich features which make existing features in Sharepoint like blogs, wikis far more powerful and there are also some new stuffs. It offers following features:
    Enhanced Blog Edition
    Enhanced Wiki Edition
    Enhanced Discussion Board Edition
    Corporate Intranet Edition
    Internet/Extranet Edition
    User Group Edition (1.0)
    School Edition
    Home Owners Association Edition
    Wedding Edition
    External Collaboration Toolkit for SharePoint (Community Edition)

    Some features may not be useful for a bussiness environment but most of them can be really helpful. Please go to http://cks.codeplex.com/ for more details.

    ChartPart for Sharepoint: Have you ever tried to generate charts from Sharepoint lists? If you didn't or you were stuck in middle then you should use the ChartPart for Sharepoint. It is nothing but a pluggable Sharepoint web part which supports multiple graph types, custom colors, palletes and fonts with localization support (seven languages currently). Please go to http://chartpart.codeplex.com/ for more details.

    Sharepoint KnowledgeBase: It is a Sharepoint web aprt which provides knowledgebase syatem for WSS 3.0 and MOSS 2007. It helps users to maintain questions, answers, categories, ratings, feedbacks, comments and moderation. For more details visit http://spkb.codeplex.com/.

    Google Maps Web Part for Sharepoint: Google Maps Web part for Sharepoint can be very useful when you want to display points and locations on your Sharepoint sites and get directions from those. Google Map API key is required to use this web part. Please go through the following link http://googlemapswebpart.codeplex.com/.

    Sharepoint Poll Web Part: It is a web part which allows the site users to create a poll in the site collection. It is more easier to be used than the Survey List. Link for more details is http://spuserpoll.codeplex.com/.

    Sharepoint Ad-Rotator: A very simple but useful web part to display rotating images and advertisements for your organization. Just go to http://spadrotator.codeplex.com/ for more information.

    ChatterBox for Sharepoint: A tiny little ChatterBox web part can add group chatting functionality to your Sharepoint sites. There is no user to user chatting facility but still can be useful. For more details visit http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=CKS&ReleaseId=4234.

    MOSS Faceted Search: It is a set of web parts which makes Sharepoint search much more interactive. It groups, refines, displays, updates search results by Sharepoint API implemented facets. Want to see more, just go to http://facetedsearch.codeplex.com/.

    SmartPart: Writing a SharePoint web part without designer support and code intelligence is a developer's nightmare. Thanks to SmartPart and Jan Tielens, lot of development time can be solved by simply using this feature. Just use a Web User Control in which you will get the full designer and intellisense support and deploy it to the web site's user controls folder. But you also have to make sure that the Smart Part feature is also installed on the specific Sharepoint site. I am not going to detail about this cool feature, just go to http://smartpart.codeplex.com/ for more details.

    Programmatically Playing With SSRS Subscriptions

    SQL Server Reporting Services offers programmatically handling various report subscriptions. You can read the specific subscriptions and change those in code-behind as required. I assume that you are already aware about the subscription mechanism in reporting services. For some of you who are not aware about this, I would like to write that subscription in reporting services is nothing but a automated service (sql server job) defined and set by you to deliver reports at specific time or in specific events. You also define in which format the report will be presented to the user. Now whatever subscription properties you have set, everything will be stored in the ReportServer database. Schedule, Subscriptions and ReportSchedule tables contain alll those informations.

    Now create a Windows or Web Application. Add a Web Reference towords
    ReportingService2006. If SSRS is isntalled on your system then you can easily find the ReportService2006.asmx in the following url:

    http://servername/_vti_bin/ReportServer/ReportService2006.asmx

    If report server is not installed on your system then you can find this web service in any remote report server using the above mentioned url (server name has to be replaced).

    Create an object of the ReportingService2006 web service. Declare the following variables in order to get the retrieved subscription properties:

    ActiveState active = null;
    ParameterValueOrFieldReference[] extensionParams = null;
    ExtensionSettings extSettings = null;
    ParameterValue[] values; a

    string desc = string.Empty;
    string eventType = string.Empty;
    string matchData = string.Empty;


    Call the GetSubscriptionProperties method of ReportingService2006 web service by passing the Subscription ID of the Subscription which needs to be changed:

    ReportingService2006 rs = new ReportingService2006();
    rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
    rs.GetSubscriptionProperties(txtSubscriptionID.Text.Trim(), out extSettings, out desc, out active, out status, out eventType, out matchData, out values);

    Different parameter details for this method are as follows:
    Subscription ID : It is the unique id of the subscription which needs to be modified.
    Extension Settings: It is the report deilvery extension and its configurable settings. It is an output parameter.
    Description: It contains some meaningful description which will be displayed to the user. It is an output parameter.
    ActiveState: It returns the ActiveState of the specified subscription. It is an output parameter. Status: It is the status of the Subscription and an output parameter.
    EventType: It returns the type of event that triggers the subscription. It is an output parameter.
    MatchData: It returns xml data specific to the report execution and deilvery scheduling process. It is an output parameter.
    ParameterValue[]: It is the collection of different report parameters for the report. It is also an output parameter.

    To get all extension settings returned from the web service, you can use the following code:

    ParameterValueOrFieldReference[] extensionParams = extSettings.ParameterValues;
    foreach (ParameterValueOrFieldReference
    extensionParam in extensionParams)
    {
    if (((ParameterValue)extensionParam).Name.Equals("TO"))
    {
    txt_TO.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("CC"))
    {
    txt_CC.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("BCC"))
    {
    txt_BCC.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("ReplyTo"))
    {
    txt_ReplyTo.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("Subject"))
    {
    txt_Sub.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("Comment"))
    {
    txt_Comment.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("Priority"))
    {
    txt_Priority.Text = ((ParameterValue)extensionParam).Value;
    }
    }

    As I wrote earlier, matchdata parameter returns xml string which needs to be parsed first in order to change or modify it. You can always fire a select statement in the Subscription table on the ReportServer database to see how matchdata column looks like. But the pre-requisite is that you have to create a report subscription first. Understand the xml definition of the match data with different schedule durations and the parse and bind it to the different control as per your requirement.

    After binding all informations retrieved from ReportingService2006, its your turn to change the data as per the requirement. Now to save the subscription, please note that you need to again create a xml string that contains the modified report scheduling defenition. Finally call the
    SetSubscriptionProperties method of the ReportingService2006 web service.


    rs.SetSubscriptionProperties(subscriptionID, extSettings, desc, eventType, xmlScheduling, values);

    It will update the Subscription definiton in the ReportServer database. It is very important to be noted that the matchdata which is generated dynamically should be consistent with the exact defenition. There are five types of schedule durations which are Once, Hourly, Daily, Hourly, Weekly and Monthly. For each different schedule durations, the xml schema are less or more differents. So its my suggestion to you to not to use SetSubscriptionProperties method to change the subscription with out understanding the matchdata format for different schedule durations. Otherwise, report subscription may be corrupted for improper matchdata.

    Following link may be useful during your implementation:

    http://technet.microsoft.com/en-us/library/reportservice2006.reportingservice2006_members.aspx


    All the best.

    IIS Manager Showing Blank Screen










    I was shocked by one problem that I experienced while developing a SharePoint application. I was trying to open IIS Manager but it was showing me a blank screen. Even if I was trying to connect to localhost, it was denying.


    After being disturbed for a while, I came to know that OWSTimer.exe wants to access IIS ADSI (Active Directory Service Interface). OWSTime.exe has multiple threads and those are trying to access the IIS at the same time. That is why IIS Server Manager suddenly goes blank. OWSTimer.exe is a Windows Sharepoint Services timer process which is responsible to execute defined tasks in specific time interval in background. I restarted the OWSTimer.exe service and believe me it worked like a magic. Restarting IIS also forces all running threads to release their access. So that also would have solved my problem. By the way, this may be a small issue but when I experienced it, felt quite surprised.