Yes exactly that is what has happened!!
A business trip in Paris has made me extremely busy these days, due to which I really wanted to but have not been able to spend time on the blog.
I assure y'all that I will be back, till then Au revoir
Useful tips & tricks on SP2013, SP2010, MOSS 2007, .Net, Windows & Web Applications, Webservices, SQL Server, UML
Friday, August 27, 2010
Sunday, July 4, 2010
Increase SharePoint Upload Limit
Are you facing issues when trying to upload files of size above 50 MB to your SharePoint 2007 document library?
Well, I have tried to list down how you can fix those issues and ultimately increase the SharePoint Upload Limit:
First, increase the Maximum Upload Size for a specific web application.
Stsadm.exe –o setproperty –pn large–file–chunk–size –pv
httpRuntime executionTimeout="300" maxRequestLength="256000"
where
Hope this helps you.
Well, I have tried to list down how you can fix those issues and ultimately increase the SharePoint Upload Limit:
First, increase the Maximum Upload Size for a specific web application.
- Go to the Central Administration > Application Management > Web Application General Settings
- Specify the new maximum upload size for your webapplication. For now, we are setting it to 256MB. It could be even set upto 2GB.
Stsadm.exe –o setproperty –pn large–file–chunk–size –pv
- This basically denotes the chunk of data that can be read from SQL Server at one time.
- The -pv which determines the property value stands for the upload size in bytes (B).
- It could be set to a maximum of 2GB i.e. (2,147,483,648 B).
- Do an IISRESET
httpRuntime executionTimeout="300" maxRequestLength="256000"
where
- 300 means 5 minutes as execution time out
- 256000 allows uploading 256 MB files.
Hope this helps you.
Friday, June 25, 2010
Add PDF Icon to SharePoint Library
Quite obviously, we come across many occassions where PDF files are uploaded to SharePoint 2007 Libraries or Lists.
While we can easily see the images of our regular Word, Excel, PowerPoint documents, however the PDF documents look empty without the trademarked image.
Well, no problem, who says we can't have it. It is fairly simple, so let us see how:
Briefly, what this does has done is, if SharePoint sees any file (new/old) with an extension .pdf, it would display the PDF icon against the file as it does for Office documents.
Hope y'all find this information helpful. Cyaaa..and..stay tuned!!
While we can easily see the images of our regular Word, Excel, PowerPoint documents, however the PDF documents look empty without the trademarked image.
Well, no problem, who says we can't have it. It is fairly simple, so let us see how:
- Get the appropriate Adobe PDF icon image (preferrably a gif) from here
- Save that image confirming with SharePoint images standard such as icopdf.gif. Place the image where Office document icons exist by-default. Check out this 12 Hive path of your MOSS 2007 installation:
Drive\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Images - Now that we have successfully placed the image, we need to inform SharePoint about our modification. For doing this, we need to add an entry to the DocIcon.xml file which sits in the Drive\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Xml path
- Open the docicon.xml with any editor such as Visual Studio or even Notepad. Under ByExtension section, add a key/value pair as given below:
Mapping Key="pdf" value="icopdf.gif"
Note: Take a backup copy of the DocIcon.xml prior to the changes (to be on the safe side). Also, the XML start-end tags are removed as the post wouldnt allow it easily. Kindly take care in your case. - Save changes to Docicon.xml file. Perform an IISRESET command to finalize the same.
Briefly, what this does has done is, if SharePoint sees any file (new/old) with an extension .pdf, it would display the PDF icon against the file as it does for Office documents.
Hope y'all find this information helpful. Cyaaa..and..stay tuned!!
Saturday, June 19, 2010
SharePoint Timer Job stuck at Deploying
Dealing with SharePoint solution packages and solution deployment stuck at "Deploying" status!!
Well don’t panic, here is just what the doctor ordered:
If the problem still persists (esp. in the MOSS 2007 Farm environment), you might need to remove/detach a defective WFE from the farm and then retry deployment.
I have tried to put together the steps which have worked for me, hope this post helps you all too.
Well don’t panic, here is just what the doctor ordered:
- Check the Timer Job Status for the solution deployment in Central Administration. There could be entries with “Failed” as the job status.
- Lets try to set things right by running stsadm -o execadmsvcjobs command.
Note that in a farm environment, you need to run the above command on all the servers. - As a next step, try restarting the OWSTIMER Service on all boxes in the farm.
- If the above steps do not help the solution deployment. You may try retracting the solution using Retract solution command or through the Central Admin's Solution Management.
stsadm.exe -o retractsolution -name
For your knowledge, retracting a solution creates another “deployment job”.
Now if retracting the solution does not work, do not try to Force Delete the solution as that would throw an exception, "The solution cannot be removed when job is scheduled or running" - Get a list of all the pending & active deployments on your MOSS Farm using
stsadm -o enumdeployments command.
Make a note of the GUID of the various solutions on the command window as this would be required in next step. - As a last nail in the coffin, we now need to simply cancel the solution deployment by passing the GUID of the solution as shown below
stsadm -o canceldeployment -id "job id string here"
If the problem still persists (esp. in the MOSS 2007 Farm environment), you might need to remove/detach a defective WFE from the farm and then retry deployment.
I have tried to put together the steps which have worked for me, hope this post helps you all too.
Tuesday, June 8, 2010
Dotnet Cleanup Tool
This is not a promotion but sharing my learning about an awesome tool for fixing old..stuck-up..incomplete..DotNet framework installations.
I personally learnt about it while coming across one of the blogs.
Do try it to remove the .NET Framework 1.0, 1.1, 2.0, 3.0 and 3.5 This would even help you if you want to go ahead with a clean install of .Net 4.0
Try .Net Cleanup Tool
HTH.
I personally learnt about it while coming across one of the blogs.
Do try it to remove the .NET Framework 1.0, 1.1, 2.0, 3.0 and 3.5 This would even help you if you want to go ahead with a clean install of .Net 4.0
Try .Net Cleanup Tool
HTH.
Monday, June 7, 2010
SharePoint DateTime Format Conversions
SharePoint 2007 uses ISO8601 DateTime format internally. It understands either of 2 possible notations for DateTime:
YYYY-MM-DDThh:mmTZD or
YYYY-MM-DDThh:mm:ssTZD
where,
Convert from DateTime to ISO8601 DateTime (C#):
When you are trying to insert or modify some DateTime fields to or from a SPListItem, you could use the code given above to format values into ISO 8601.
You can build the CAML query for the SPQuery object as shown below:
Example:
Convert from ISO8601 to DateTime (C#):
Note: In above example, the ISO DateTime string is converted to DateTime equivalent using DateTime.Parse method.
Also, incase you want to change the Site Collection date format:
YYYY-MM-DDThh:mmTZD or
YYYY-MM-DDThh:mm:ssTZD
where,
- understandably YYYY being 4-digit year, MM for 2-digit month number, DD for day of month
- T stands for start of time.
- Following that denotes the time which could be "hh:mm" (hours-mins) or "hh:mm:ss" (hours-mins-seconds)
- Z indicates the Coordinated Universal Time (UTC)
Convert from DateTime to ISO8601 DateTime (C#):
DateTime date = DateTime.Now; string isoDate = SPUtility.CreateISO8601DateTimeFromSystemDateTime(date); |
When you are trying to insert or modify some DateTime fields to or from a SPListItem, you could use the code given above to format values into ISO 8601.
You can build the CAML query for the SPQuery object as shown below:
Example:
Note: Don't forget to add reference of Microsoft.SharePoint.Utilities in your class file before building your project.
Convert from ISO8601 to DateTime (C#):
DateTime date = DateTime.Parse("2010-06-15 00:00:00"); string sysDate = date.ToString("MM/dd/yyyy"); |
Note: In above example, the ISO DateTime string is converted to DateTime equivalent using DateTime.Parse method.
Also, incase you want to change the Site Collection date format:
- Go to "Site Settings" & navigate to "Modify All Site Settings"
- Click on Regional Settings under Site Administration
- Change the time zone. Save the changes.
Saturday, June 5, 2010
Resolve MachineToApplication error in web.config
Sometime, when you are trying move your SharePoint application from your Staging to Production environment, did you come across this ugly error:
Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.
I am sure, this is enough to spoil the party just when you are expecting your SharePoint website to be up-n-running in the live environment. Now the question comes, "How do we fix this darn thing?"
Well for that, you could try the below suggestions. If you read the error message carefully, it has 2 hints already in it.
Hint #1: virtual directory not being configured as an application in IIS
Resolution: Make sure you have correctly configured your web application in IIS Manager. If it is a simple folder in wwwroot directory, you should "convert" it into web application.
Resolution: If you do a find for line XX in your web.config, you are sure to reach this line,
Try accessing your site after the above modifications, it should work fine now.That's all folks!! (for now :D), please let me know if this helped.
Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.
I am sure, this is enough to spoil the party just when you are expecting your SharePoint website to be up-n-running in the live environment. Now the question comes, "How do we fix this darn thing?"
Well for that, you could try the below suggestions. If you read the error message carefully, it has 2 hints already in it.
Hint #1: virtual directory not being configured as an application in IIS
Resolution: Make sure you have correctly configured your web application in IIS Manager. If it is a simple folder in wwwroot directory, you should "convert" it into web application.
- Open IIS manager
- Find your folder, right-click -"Properties"->"Create" button
- Recycle the application pool
Resolution: If you do a find for line XX in your web.config, you are sure to reach this line,
Try accessing your site after the above modifications, it should work fine now.
Friday, June 4, 2010
.Net 4.0 Framework Evolution
As you must be aware that Microsoft has unveiled its latest Dotnet Framework 4.0, I just thought I should add some information and provide download links for .Net framework 4.0.
4.0 is a superset of older versions of framework but it is independent of 3.5 or any other older frameworks. It is a standalone package.It is independent due to its brand new CLR.
The framework is constantly reviewed by MS. If you see the evolution of the framework, the 2.0, 3.0, 3.5 had been on the same CLR but it was much different from previous 1.1 Framework. The versions which followed 1.1 had vast modifications. And, now 4.0 has comeout as a new offspring as shown below:
There are various products such as Visual Studio 2010, SPS2010, BizTalk 2010, etc.. which are already based on this new 4.0 framework.So fire up your engines and try your hands by downloading the latest .Net 4.0 Framework Offline Setup package from this link download
4.0 is a superset of older versions of framework but it is independent of 3.5 or any other older frameworks. It is a standalone package.It is independent due to its brand new CLR.
The framework is constantly reviewed by MS. If you see the evolution of the framework, the 2.0, 3.0, 3.5 had been on the same CLR but it was much different from previous 1.1 Framework. The versions which followed 1.1 had vast modifications. And, now 4.0 has comeout as a new offspring as shown below:
Tuesday, June 1, 2010
Find the IP Address of the SharePoint 2007 User
Suppose you have a SharePoint website that is being accessed by a lot of users everyday (~1K users daily).
Now for some reason or the other you want to capture the client IP address of the end user accessing your MOSS web application.
Purposes could be like:
This could be easily used in both ASP.Net applications as well as SharePoint development projects.
Now for some reason or the other you want to capture the client IP address of the end user accessing your MOSS web application.
Purposes could be like:
- Reporting/Logging user IP address
- Security purposes
- Filtering content based on the client IP address
- Getting the location of the user based on the client IP address
- so on..
This could be easily used in both ASP.Net applications as well as SharePoint development projects.
Saturday, May 29, 2010
Difference between SPWeb.Users, SPWeb.AllUsers, SPWeb.SiteUsers
MOSS 2007 offers 3 different user collections in the SPWeb object.
So I thought it would be nice to write an article stating which is what. Hope this information helps you SharePoint 2007 developers.
- SPWeb.Users
This represents the collection of users or user objects who have been explicitly assigned permissions in the Web site . This does not return users who have access through a group.
Example (C#):
SPUserCollection users = web.Users; - SPWeb.AllUsers
This gives us the collection of user objects who are either members of the site collection or who have atleast navigated to the site as authenticated members of a domain group in the site.
Example (C#):
SPUserCollection users = web.AllUsers; - SPWeb.SiteUsers
This is the collection of all users that belong to the site collection.
Example (C#):
SPUserCollection users = web.SiteUsers;
So I thought it would be nice to write an article stating which is what. Hope this information helps you SharePoint 2007 developers.
Sunday, May 16, 2010
How to Fix Central Administration: Service Unavailable Issue?
While working on MOSS Servers, you all must have faced 2 common issues quite frequently
Suddenly while you are in the middle of your important SharePoint deployment or configuration, either of these issues will prop up and eat up lengthy hours. Even the easiest solutions to all SharePoint problems i.e. IISReset or Server restart also do not end your miseries.
Hence, I decided, lets apply TRY-CATCH-FINALLY on these issues for once-n-for-all here.
For Issue#1:
Try to run the SharePoint configuration wizard once, follow these steps for the same:
The above steps should fix the issue, but if your problem still persists, then check the event logs of your server. Checking those logs will let you know issues such as -
If even after carrying out the above suggestions, you are not able to track down the problem, then you could unprovision Central Administration and then reprovision it.
This could be easily done via an STSADM command given below:
I sincerely hope this helps you all in fixing this critical MOSS 2007 Central Administration issue.
- You receive a "Cannot connect to the configuration database"
- Service Unavailable
Suddenly while you are in the middle of your important SharePoint deployment or configuration, either of these issues will prop up and eat up lengthy hours. Even the easiest solutions to all SharePoint problems i.e. IISReset or Server restart also do not end your miseries.
Hence, I decided, lets apply TRY-CATCH-FINALLY on these issues for once-n-for-all here.
For Issue#1:
Try to run the SharePoint configuration wizard once, follow these steps for the same:
|
- Is your SQL server agent running?
- Credentials (app pool permissions) used for connecting to SQL Server is working or failing?
- Facing any network issues to be able to connect to DB?
(this only applies if the SQL is applied on a separate box from MOSS 2007) - so on..
If even after carrying out the above suggestions, you are not able to track down the problem, then you could unprovision Central Administration and then reprovision it.
This could be easily done via an STSADM command given below:
stsadm.exe -o provisionservice -action start -servicetype Microsoft.SharePoint.Administration.SPWebService -servicename WSS_Administration |
I sincerely hope this helps you all in fixing this critical MOSS 2007 Central Administration issue.
Wednesday, May 5, 2010
How to backup a DLL from GAC to another directory?
Recently, one of my friends came up with a requirement where she wanted to take a backup of an existing .Net assembly that was already deployed in Global Assembly Cache (GAC) earlier.
When she asked me this question..I thought to myself that this should not be so tough..well it proved so too at the end.
Finally, this is how it could be done (well..one way of achieving this!!)
If you go to Windows Run Assembly you will see this screenshot
Now, go to the Command Prompt on your system and type
cd windows\assembly ENTER (Key)
Next, type GAC in the CMD prompt, hit ENTER
Suppose, you want to copy "Extensibility" DLL from GAC to another directory, then type cd Extensibility (you can type Ex and press Tab on your keyboard to navigate faster) to enter the folder hierarchy.
Note: This would be your custom DLL instead of "Extensibility"
Press cd + Tab (keyboard) and hit ENTER again.
Once there, we need to copy!!
In CMD window, type: copy extensibility.dll C:\myCustomDir. Hit ENTER key
Go and check in that directory, you will find the Extensibility dll nicely lazing around..
Hope this post helps you all SharePoint 2007 & Dotnet developers as well as admins in doing this simple but at times life-saving act.
When she asked me this question..I thought to myself that this should not be so tough..well it proved so too at the end.
Finally, this is how it could be done (well..one way of achieving this!!)
If you go to Windows Run Assembly you will see this screenshot
Now, go to the Command Prompt on your system and type
cd windows\assembly ENTER (Key)
Next, type GAC in the CMD prompt, hit ENTER
Suppose, you want to copy "Extensibility" DLL from GAC to another directory, then type cd Extensibility (you can type Ex and press Tab on your keyboard to navigate faster) to enter the folder hierarchy.
Note: This would be your custom DLL instead of "Extensibility"
Press cd + Tab (keyboard) and hit ENTER again.
Once there, we need to copy!!
In CMD window, type: copy extensibility.dll C:\myCustomDir. Hit ENTER key
Go and check in that directory, you will find the Extensibility dll nicely lazing around..
Hope this post helps you all SharePoint 2007 & Dotnet developers as well as admins in doing this simple but at times life-saving act.
Saturday, April 24, 2010
Extracting data from Sharepoint Version table
When using SharePoint 2007, if we turn the Version Control settings to On for a List/Library, then different versions of the file or listitem get stored in the Content DB.
There are multiple ways to retrieve this information:
SPWeb web = new SPSite("your site url").OpenWeb();
SPList lib = web.Lists["your library"];
foreach (SPListItem item in lib.Items)
{
SPFile file=item.File
SPFileVersionCollection versions = file.Versions;
//Add your code to loop through the version collection & add custom logic here..
}
Coming to WebService approach:
SharePoint has a Versions.asmx web service to work with versions in document libraries.
For introduction, check out how to utilize this to get some information :
http://www.c-sharpcorner.com/UploadFile/klaus_salchner@hotmail.com/SharePointWS11152005045049AM/SharePointWS.aspx
Incase, you want to go ahead querying the SQL tables directly, then you could try a query as below:
SELECT DocVersions.version
FROM Docs INNER JOIN DocVersions ON DocVersions.Id = Docs.Id
Although it is not recommended that you query the SP DB directly. Any modifications or changes to the Content DB tables in unsupported.
Also the data is stored in UTF-8 Encoded format. After the query runs, it returns some data like this:
UIVersion
512
1024
1536
2048
512
1024
512
The above data is difficult to interpret in terms of Version numbers. Anyway, just to let you know
512 = version 1,
1024 =version 2,
1025 =version2.1,
2048= version 3,
1=version 0.1
and so on..
I guess the pattern is clear to you. Hope this article helps you.
There are multiple ways to retrieve this information:
- Using MOSS 2007 API
- Via Versions.asmx - An OOB SharePoint Webservice
- Or Querying the Docs & DocVersions table directly in using T-SQL statements
SPWeb web = new SPSite("your site url").OpenWeb();
SPList lib = web.Lists["your library"];
foreach (SPListItem item in lib.Items)
{
SPFile file=item.File
SPFileVersionCollection versions = file.Versions;
//Add your code to loop through the version collection & add custom logic here..
}
Coming to WebService approach:
SharePoint has a Versions.asmx web service to work with versions in document libraries.
For introduction, check out how to utilize this to get some information :
http://www.c-sharpcorner.com/UploadFile/klaus_salchner@hotmail.com/SharePointWS11152005045049AM/SharePointWS.aspx
Incase, you want to go ahead querying the SQL tables directly, then you could try a query as below:
SELECT DocVersions.version
FROM Docs INNER JOIN DocVersions ON DocVersions.Id = Docs.Id
Although it is not recommended that you query the SP DB directly. Any modifications or changes to the Content DB tables in unsupported.
Also the data is stored in UTF-8 Encoded format. After the query runs, it returns some data like this:
UIVersion
512
1024
1536
2048
512
1024
512
The above data is difficult to interpret in terms of Version numbers. Anyway, just to let you know
512 = version 1,
1024 =version 2,
1025 =version2.1,
2048= version 3,
1=version 0.1
and so on..
I guess the pattern is clear to you. Hope this article helps you.
Saturday, April 17, 2010
SharePoint List Title Column
Generally there are 2 things we like to do with our SharePoint custom list Title field viz. Rename or Hide
Before we do this, be aware of the importance of Title field
Before we do this, be aware of the importance of Title field
- It gets the context menu by default
Hence, if you hide it then, basically all the Context menu functionality is removed - As a result, you need to put the Edit button in all of your views just to edit the item
- You also need to place your custom code to re-associate context menu
- Go to the List settings
- Click on the Title field
- Save your changes
- Go to the List settings
- Click the Advanced Settings link
- Next, selecting the Yes option button for the management of content types on this list
- Click on the Item link in the Content Types section
- Now, click on the name Title link and change the Column Setting to Hidden.
- Save your changes by clicking OK
Subscribe to:
Posts (Atom)