If you haven't registered what are you waiting for?
Click the movie poster below to Register.

World-class free online conference that features technical content presented by Americas' region MVPs that is open to the public
More technical content (Level 200, 300, 400), less marketing
5 tracks: IT Pro English, Dev English, Consumer English, Mixed Spanish, Mixed Portuguese
Event will be broadcast via Lync using L+ which enhances the conferencing capabilities of Lync
Two full days of sessions with simultaneous webcasts running across all 5 tracks
Thursday May 14th and Friday, May 15th
Start at 8am PT and running until 6pm PT (Pacific)
Day 1: 45 sessions + Keynote, Day 2: 50 sessions
Keynote on Day 1 to be delivered by Steve 'Guggs' Guggenheimer, Corporate VP of DX
On Demand content available via Channel9
This event is not just for MVPs, it's for everyone!

Here are a couple of offers from Microsoft you may want to take advantage of.
Enjoy the free stuff, and you're welcome.
It's that time of year again. Time for "ObjectSharp at the Movies".
This year's line-up:

I spend a lot of my time nowadays helping clients successfully adopt Team Foundation Server. From planning, installation and configuration to customization, builds, release management and everything in between. And, even though, I've been working with TFS for a long time, once in a while you come across something that you have seen before. When that happens, I do my best to share my experience on this blog. So, here is my latest discovery.
The client is running a fresh install of TFS 2013 Update 4. Everything is well, except for one minor annoyance. For some reason, Test Plan field is empty in the Test Plan Progress report. There are no errors in warehouse of analysis cube processing. In fact, there are no errors in TFS, Reporting Services or Analysis Services. Every log is clean and everything runs smoothly. Typically, when you see something does not work or look properly you'd expect an error or at least a warning to show up somewhere, right? Not this time. I've looked around the web, but could not find any reasonable explanation why this is happening. I've found a few entries with people experiencing similar issue, but none provided a solution to this.
Luckily, as a Microsoft MVP in Visual Studio ALM, I have "direct" access to the product team. So, I've reached out and after a few emails back and forth, we've found a solution. It looks like that this issue can occur on fresh installs of TFS. Apparently, the Test Plan dimension loses the friendly names for some attributes when the warehouse/cubes gets processed before a project gets created. This issue can be easily fixed, if you rebuild the warehouse/cube using TFS Admin console. Clicking the Rebuild button in TFS Admin console will put everything back in its place. It's that easy. J
Azure Websites - More than hosting
TL;DR Learn how to save your business money with websites and backups.
Description
In this session you'll learn the many different ways to deploy, manage & scale .NET, PHP, Node.js, Python and Java websites and web apps on Microsoft Azure. This includes cloud best practices like integrated source control & continuous deployment with Git & GitHub, auto scaling, web jobs, caching, backups, staging environments and more. Join Microsoft in this demo heavy overview of Microsoft Azure Websites and learn how eligible startups can get up to $60,000 in free Azure credits through BizSpark.
What you'll walk away knowing
How to create an Azure Website
How to integrate with source control systems like Git & GitHub for continuous deployment
How to scale your website manually & automatically
How to create a staging environment for your site
How to automatically backup your site
Dates & Locations
Toronto - March 18
Starts: March-18-15 12:00 PM
Ends: March-18-15 2:00 PM
Where: MaRS Discovery District - Room: CR2, 101 College St, Toronto Ontario M5G 1L7
Vancouver - March 23
Starts: March-23-15 11:30 AM
Ends: March-23-15 1:30 PM
Where: Launch Academy, Back Boardroom, 128 W Hastings St, Vancouver, British Columbia V6B 1K6
Kitchener - March 26
Starts: March-26-15 11:30 AM
Ends: March-26-15 1:30 PM
Where: Communitech Hub, Atlas/Matrix Room, 151 Charles St W, Suite 100, Kitchener Ontario N2G 1H6
Montreal - March 26
Starts: March-26-15 12:00 PM
Ends: March-26-15 2:00 PM
Where: Notman House, Notman Hall - 3rd Floor, 51 Rue Sherbrooke W, Montréal, QC
Events Summary
Azure Websites - More than hosting
Toronto - March 18
Vancouver - March 23
11:30 AM - 1:30 PM
Launch Academy, Back Boardroom, 128 W Hastings St, Vancouver, British Columbia V6B 1K6
Kitchener - March 26
11:30 AM - 1:30 PM
Communitech Hub, Atlas/Matrix Room, 151 Charles St W, Suite 100, Kitchener Ontario N2G 1H6
Montreal - March 26
12:00 PM - 2:00 PM
Notman House, Notman Hall - 3rd Floor, 51 Rue Sherbrooke W, Montréal, QC
I love Office 365 and Outlook Web Access. What's not to love?!? Excellent product with tons of amazing features for a very fair price. J Having said that, like any other good product, it can always get better. For example, I have noticed that every time when I try to copy/paste anything into the body of the email message, OWA crashes and closes with an "IE has stopped working". It closes and then recovers back to the same page. When you try to paste again, the page crashes again, and so on and so forth. This only happens when you use Internet Explorer, and copy/paste works fine in Chrome. I can always say that it's happening because "IE sucks" like a lot of people do, but I'd rather focus on finding a solution than who/what is to blame. Anyways, with a bit of internet searching I have found a work around.
- Go to Internet Options
- Click the Security Tab
- Highlight the Internet zone, click Custom level button
- Scroll down to the Scripting section, and in the Scripting section, find Allow Programmatic clipboard access option
- Set Allow Programmatic clipboard access option to Enable
- Click OK to save
- Click Yes, if warning prompts comes up
Now copy/paste into the body of an email message should work just fine when you open OWA with Internet Explorer.
Is it time to level up your skills using Infrastructure as a Service? Want to learn from the best technical engineers and noted technology leaders around?
Join Mark Russinovich, Corey Sanders, and members of the Azure Engineering team for a live event delivered online over four days. Join for one session, join for them all. You'll dive deep into technical scenarios, ask questions of the experts, and level up your own skills.
Azure IaaS for IT Pros Online Event, December 1-4
Click here to register!
Become an IaaS go-to guru
Mark Russinovich, Microsoft Chief Technology Officer, Azure, will kick off the event, followed by deep technical training in the technologies critical for IT Pro Implementers, like you, to deepen your foundational cloud skills. Following the keynote, experts will share their technical insights on topics including Core IaaS, Cloud Infrastructure Fabric, Open Source Software on Azure, and Workloads on Azure IaaS.
Be recognized for your skills
Get certified for your skills! Register for the event to receive reminder emails and obtain details for receiving a 50% off exam voucher you can use towards Exam 70-533: Implementing Microsoft Azure Infrastructure Solutions for Microsoft Azure Specialist Certification.
Join the live event from 9am to 1pm PST
December 1
Establish the Foundation: Core IaaS Infrastructure Technical Fundamentals
December 2
Dive Deep into Networking, Storage, and Disaster Recovery Scenarios
December 3
Embrace Open Source Technologies (Chef and Puppet Configurations, Containerization with Docker and Linux) to Accelerate and Scale Solutions
December 4
Optimize Windows Workload Architecture and Administration Capabilities Within Azure
Register Now
I was getting the following error while configuring RM server - "Object Already exists". Please find the log.
Database ReleaseManagement, version 12.0.30XXX.0 was installed successfully.
Created Release Management database.
Received Exception : System.Security.Cryptography.CryptographicException: Object already exists.
at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
at System.Security.Cryptography.Utils._CreateCSP(CspParameters param, Boolean randomKeyContainer, SafeProvHandle& hProv)
at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)
at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()
at Microsoft.TeamFoundation.Release.CommonConfiguration.Helpers.CryptoHelper.ConfigureServerCryptoKey(String serverName, String databaseName)
at Microsoft.TeamFoundation.Release.Configuration.ConfigurationManager.Configure(ConfigurationUpdatePack updatePack, DelegateStatusUpdate statusListener)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
Work completed for GetConfiguration() call : got out of turn error
Object already exists.
To fix the problem, you need to make sure that the credentials used to configure the Release Management server has modify permissions on C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys. You might have to take ownership of some of the files within that folder before you can grant yourself modify permissions.
Here is another PowerShell script that can help you deploy SharePoint solutions using Release Management. This PowerShell script can be used as a part of a custom tool/action/component in Release Management that will deploy (or first retract, then deploys) a SharePoint solution. It's fairly straightforward script that might not necessarily cover every possible scenario in SharePoint solution deployment, but it works. It takes three parameters: name of the SharePoint solution, web application name, and compatibility level of the solution. Script assumes that the wsp file is located in the same folder as the PowerShell. I know it's not perfect, but it can be easily modified to use full path to the wsp file instead.
param
(
[string]$WebApp = $null,
[string]$WSP_FileName = $null,
[string]$CompatibilityLevel = $null
)
function WaitForJobToFinish([string]$Identity)
{
$job = Get-SPTimerJob | ?{ $_.Name -like "*solution-deployment*$Identity*" }
$maxwait = 30
$currentwait = 0
if (!$job)
{
Write-Host -f Red '[ERROR] Timer job not found'
}
else
{
$jobName = $job.Name
Write-Host -NoNewLine "[WAIT] Waiting to finish job $jobName"
while (($currentwait -lt $maxwait))
{
Write-Host -f Green -NoNewLine .
$currentwait = $currentwait + 1
Start-Sleep -Seconds 2
if (!(Get-SPTimerJob $jobName)){
break;
}
}
Write-Host -f Green "...Done!"
}
}
function RetractSolution([string]$Identity, [string]$web_application, [string]$compatibility_level)
{
Write-Host "[RETRACT] Uninstalling $Identity"
Write-Host -NoNewLine "[RETRACT] Does $Identity contain any web application-specific resources to deploy?"
$solution = Get-SPSolution | where { $_.Name -match $Identity }
if($solution.ContainsWebApplicationResource)
{
Write-Host -f Yellow "...Yes!"
Write-Host -NoNewLine "[RETRACT] Uninstalling $Identity from $web_application web application"
Uninstall-SPSolution -identity $Identity -CompatibilityLevel $compatibility_level -WebApplication $web_application -Confirm:$false -ErrorVariable uninstallSolution
}
else
{
Write-Host -f Yellow "...No!"
Uninstall-SPSolution -identity $Identity -Confirm:$false
}
if ($uninstallSolution.Count -ne 0)
{
throw "Uninstalling SharePoint solution failed."
}
else
{
Write-Host -f Green "...Done!"
}
WaitForJobToFinish
Write-Host -NoNewLine '[UNINSTALL] Removing solution:' $SolutionName
Remove-SPSolution -Identity $Identity -Force -Confirm:$false -ErrorVariable removeSolution
if ($removeSolution.Count -ne 0)
{
throw "Removing SharePoint solution failed."
}
else
{
Write-Host -f Green "...Done!"
}
}
function DeploySolution([string]$Path, [string]$Identity, [string]$web_application, [string]$compatibility_level)
{
Write-Host -NoNewLine "[DEPLOY] Adding solution:" $Identity
Add-SPSolution $Path -ErrorVariable addSolution
if ($addSolution.Count -ne 0)
{
throw "Adding SharePoint solution failed."
}
else
{
Write-Host -f Green "...Done!"
}
Write-Host -NoNewLine "[DEPLOY] Does $Identity contain any web application-specific resources to deploy?"
$solution = Get-SPSolution | where { $_.Name -match $Identity }
if($solution.ContainsWebApplicationResource)
{
Write-Host -f Yellow "...Yes!"
Write-Host -NoNewLine "[DEPLOY] Installing $Identity for $web_application web application"
Install-SPSolution -Identity $Identity -CompatibilityLevel $compatibility_level -WebApplication $web_application -GACDeployment -Force -ErrorAction Stop -ErrorVariable installSolution
}
else
{
Write-Host -f Yellow "...No!"
Write-Host -NoNewLine "[DEPLOY] Globally deploying $Identity"
Install-SPSolution -Identity $Identity -GACDeployment -Force -ErrorAction Stop -ErrorVariable installSolution
}
if ($installSolution.Count -ne 0)
{
throw "Installing SharePoint solution failed."
}
else
{
Write-Host -f Green "...Done!"
}
WaitForJobToFinish
}
$snapin = Get-PSSnapin | Where-Object { $_.Name -eq "Microsoft.SharePoint.Powershell" }
if ($snapin -eq $null) {
Write-Host "[INIT] Loading SharePoint Powershell Snapin"
Add-PSSnapin "Microsoft.SharePoint.Powershell"
}
$identity = $WSP_FileName
$path = $WSP_FileName
Write-Host "[INFO] ----------------------------------------"
Write-Host "[INFO] Installing $Identity"
Write-Host -NoNewLine "[INFO] Determining if $Identity is already installed"
$isInstalled = Get-SPSolution | where { $_.Name -eq $identity }
if ($isInstalled)
{
Write-Host -ForegroundColor Yellow "...Yes!"
(RetractSolution $identity $WebApp $CompatibilityLevel)
(DeploySolution $path $identity $WebApp $CompatibilityLevel)
}
else
{
Write-Host -ForegroundColor Yellow "...No!"
(DeploySolution $path $identity $WebApp $CompatibilityLevel)
}
Write-Host -NoNewline "[INFO] Installation and deployment of $Identity"
Write-Host -ForegroundColor Green "...Done!"
##################################################################################
# Indicate the resulting exit code to the calling process.
if ($exitCode -gt 0)
{
"`nERROR: Operation failed with error code $exitCode."
}
"`nDone."
exit $exitCode
Here is a link to download the script.