by Martin Laukkanen | Mar 2, 2010 | Project 2010
In case you haven’t seen this on the Project Programmability blog, then Microsoft have now released a hosted Project Server 2010 demo. This makes it much easier for anyone would would struggle to get their hands on an 8GB 64bit Windows 2008 server!
Access it directly here at the Microsoft Virtual Labs.
See the blog link above if you want some more info or are game to try your hands at the full Hyper-V version, even if you haven’t yet installed Project Professional 2010 you’ll find that link there also!
by Martin Laukkanen | Feb 24, 2010 | SharePoint 2010
I was meant to spend a couple of days this week at SharePoint 2010 Ignite in Sydney but unfortunately it was cut short after the first day, regardless though below I have my notes from the first day of the things that I thought were either worth remembering or of particular relevance to Project Server.
Day 1:
Overview / Architectural Changes
- Groove is now called SharePoint Workspace.
- Remote Blob storage allows content data to be stored externally, ie in a file share or 3rd party document management system (via add-in).
- Significantly larger database size support (300GB+).
- Media streaming (via chunks of data not actual steaming) now possible for Video / Audio.
- Multi-tenancy allows for improved sharing of a farm between different entities, ie in a hosted environment when multiple companies share one farm.
-
Cross-farm Service Applications allows for sharing of some applications between farms (But not Project!).
Business Continuity Management
- SharePoint Config database now can be backed-up and restored.
- Backup to XML of Config database possible, restore of config only is also possible (extra steps would be required for the content).
- Export of sites and lists from central admin now possible, including from unattached database.
- Restore of individual site from full farm .bak file supported via PowerShell.
-
SharePoint is now mirror aware allowing the configuration of a “failover database server” for each configured database.
Operations – Monitoring
- Managed accounts allow for service account passwords to be automatically managed, e.g. automatic complex password change on schedule.
- Logging database now available, can capture ULS, Event and other logs as well as performance stats.
- Text file trace (ULS) log file now compressed by default, and log flood protection enabled by default.
-
PowerShell commands for log management, one nice one is: “Merge-SPLogFile” which combines all trace log files from servers in the farm.
Unfortunately I we can’t distribute the slides videos shown, but keep an eye on the MS SharePoint Team blog as I’m sure when they finish the round of sessions you will then be able to download them all to see the rest of the content.
by Martin Laukkanen | Feb 23, 2010 | Development, SharePoint 2010
While diving deeper into the SharePoint 2010 PowerShell command-lets I realised that my last blog using a borrowed script based on 2007 was in need of a major update for 2010, so see here a version doing the same thing but with no use of STSADM (and thus no need to run as admin in 2008).
Warmup2.ps1
############################################################################
#WarmUp2.ps1 - Enumerates all web sites in web applications in a 2010
# SharePoint farm and opens each in a browser.
#Notes:
#-"get-webpage" function borrowed from:
# http://kirkhofer.wordpress.com/2008/10/18/sharepoint-warm-up-script/
#
#Assumptions:
#-Running on machine with WSS/MOSS 2010 installed
############################################################################
Add-PsSnapin Microsoft.SharePoint.PowerShell
$extrasitelistfile = 'c:ToolsWarmupwarmup-extrasites.txt'
function get-webpage([string]$url,[System.Net.NetworkCredential]$cred=$null)
{
$wc = new-object net.webclient
if($cred -eq $null)
{
$cred = [System.Net.CredentialCache]::DefaultCredentials;
}
$wc.credentials = $cred;
return $wc.DownloadString($url);
}
#This passes in the default credentials needed. If you need specific
#stuff you can use something else to elevate basically the permissions.
#Or run this task as a user that has a Policy above all the Web
#Applications with the correct permissions
$cred = [System.Net.CredentialCache]::DefaultCredentials;
#$cred = new-object System.Net.NetworkCredential("username","password","machinename")
$apps = get-spwebapplication -includecentraladministration
foreach ($app in $apps) {
$sites = get-spsite -webapplication $app.url
foreach ($site in $sites) {
write-host $site.Url;
$html=get-webpage -url $site.Url -cred $cred;
}
}
# Warm up other sites specified in warmup-extrasites.txt file (such as SSRS)
if (test-path $extrasitelistfile) {
$extrasites = get-content $extrasitelistfile
foreach ($site in $extrasites) {
write-host $site;
$html=get-webpage -url $site -cred $cred;
}
}
The script still retrieves a list of all sites in all web applications in the farm (including Central Admin) and additionally retrives a list of sites in a text file by default located in “C:ToolsWarmupwarmup-extrasites.txt”
Warmup-extrasites.txt
http://servername/ReportServer
Enjoy!
by Martin Laukkanen | Feb 20, 2010 | Development, SharePoint 2007
[Update: 23/02/10] I have updated this script in a new post here which does not rely on STSADM and therefore does not need to be run as admin.
With all the 2010 lab testing I have been doing lately I’ve been meaning to get around to creating / finding a new WarmUp script to use but this time based on PowerShell.
What I found is fortunately there are loads of examples out there to get you started as with most things PowerShell. See Kirk Hofer’s Blog for the one I started with.
So anyway I have added a little to the script, now in addition to opening each site in the farm it also parses a text file (C:ToolsWarmupwarmup-extrasites.txt) for additional URL’s, which I use to warm up particular SSRS or Excel reports.
Warmup.ps1
############################################################################
#Assumptions:
#-Running on machine with WSS/MOSS
############################################################################
$stsadmexe = 'C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions12BINSTSADM.exe'
$extrasitelistfile = 'c:ToolsWarmupwarmup-extrasites.txt'
function get-webpage([string]$url,[System.Net.NetworkCredential]$cred=$null)
{
$wc = new-object net.webclient
if($cred -eq $null)
{
$cred = [System.Net.CredentialCache]::DefaultCredentials;
}
$wc.credentials = $cred;
return $wc.DownloadString($url);
}
#This passes in the default credentials needed. If you need specific
#stuff you can use something else to elevate basically the permissions.
#Or run this task as a user that has a Policy above all the Web
#Applications with the correct permissions
$cred = [System.Net.CredentialCache]::DefaultCredentials;
#$cred = new-object System.Net.NetworkCredential("username","password","machinename")
[xml]$x=&$stsadmexe -o enumzoneurls
foreach ($zone in $x.ZoneUrls.Collection) {
[xml]$sites=&$stsadmexe -o enumsites -url $zone.Default;
foreach ($site in $sites.Sites.Site) {
write-host $site.Url;
$html=get-webpage -url $site.Url -cred $cred;
}
}
# Warm up other sites specified in warmup-extrasites.txt file (such as SSRS)
if (test-path $extrasitelistfile) {
$extrasites = get-content $extrasitelistfile
foreach ($site in $extrasites) {
write-host $site;
$html=get-webpage -url $site -cred $cred;
}
}
Warmup-ExtraSites.txt
http://servername/ReportServer
Download both files here.
Take note of the variables at the top of the script with the paths pointing to the 14 hive and the extra sites text file.
Save those files somewhere (default c:ToolsWarmUp) then schedule them to run with a command line as follows:
C:WindowsSystem32WindowsPowerShellv1.0powershell.exe C:ToolsWarmupwarmup.ps1
Finally just make sure you select the Run with highest privileges option as stsadm will need that to enumerate the sites.
Enjoy!
by Martin Laukkanen | Feb 16, 2010 | Project 2007, Troubleshooting
I came across this one recently, basically after successfully provisioning PWA on a new Windows 2008 R2 server I then found that I received the following errors in Resource Center and when editing items such as Users:
“There was an error loading the page. Please try again by clicking Refresh. If this problem persists, contact your administrator.”
“An error was encountered in loading the page. Refresh the page, or contact your server administrator if this problem persists.”
This led me to increase ULS logging to Verbose and eventually find this little one:
Application error when access /_vti_bin/PSI/resource.asmx, Error=’gzip’ is not a supported encoding name. Parameter name: name at System.Globalization.EncodingTable.internalGetCodePageFromName(String name) at System.Globalization.EncodingTable.GetCodePageFromName(String name) at System.Text.Encoding.GetEncoding(String name) at Microsoft.Office.Project.Server.PSIForwarderHandler.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
It seems some settings were different in this installation (this was a clean install by clearly not default), see the IIS Compression settings (Open IIS Manager and select the Compression setting under the server name):
Once I deselected ‘Enable dynamic content compression’ and hit Apply then immediately the above errors disappeared!
UPDATE:
Came across the following KB article which covers this issue for IIS6: http://support.microsoft.com/kb/947899