Monthly Archives: February 2011

Server Farm Product and Patch Status

Today I attempted to join a SQL Reporting Servers machine to an existing farm and saw the below error.  While self explanatory, I wanted to document it for others that haven’t seen this.  WSS 3.0 and MOSS 2007 were more lenient allowing a mix between the two product SKUs.  The below screen is new to 2010 and acts as a bouncer to enforce server farm consistency.  It appears to check three categories:

  • Product SKU  (Server / Foundation)
  • Patch (version number)
  • Language pack(s)

So what I’ll do next is install the full SharePoint Server product (with Dec 2010 CU slipstream on the Updates subfolder) and then try to join Config DB once again.  Smile

image

Error: Some farm products and patches were not detected on this or other servers.  If products or patches are missing locally, you must quit this program and install the required products and patches on this server before restarting this wizard. If products or patches are missing on other servers, you must install the required products and patches on the specific servers, and you may then click the Refresh button to perform the status check again.

NOTE –  You may need to run the command “Get-SPProduct -local” on each machine after applying the EXE/MSP updates for it to detect correctly in the SP Config Wizard.  

Central Admin – Top Nav shortcuts

While clicking aimlessly around Central Admin today I thought “there must be a better way”.  For all of the fancy new bells and whistles SharePoint 2010 offers, it sure did make CA navigation a bit cumbersome.   Most tasks are 4 clicks away and I’m sorry but I’m just too lazy for that.

I tried editing the left Quick Launch, no luck.   However, Top Navigation is wide open.   The beautiful thing here is how it follows you anywhere in the site.  From any CA page, you can see those Top Nav items staring right back at you.

  • Open “Site Actions Site Settings Top link bar
  • Click “New Navigation Link
  • My favorite is to add “Manage Service Applications” to “/_admin/ServiceApplications.aspx” because so much time is spent here.   Open-mouthed

image

Also, Rez Khamis wrote http://sp2010resourcelinks.codeplex.com/ to help people populate the CA homepage “Resource Links” and is incredibly helpful.   If you haven’t tried it then go download a copy.  While you have to navigate through the CA homepage, it’s still much better than what the product offers out of the box.

IIS 7.5 native SharePoint warm up (MUST SEE)

This one feature could be reason enough to upgrade to Windows Server 2008 R2 and IIS 7.5 when running SharePoint.  The unique ability to warm up memory cache while still serving users is something no basic scripting can achieve.  Please note: IISRESET seems to kill all workers and perform a classic flush followed by a warm up (brief outage).  However, INETMGR “recycle” on a single pool triggers the warm up in parallel for a zero outage experience.  Below is a diagram of my understanding of how this all works.  It’s not from TechNet … but hey … my budding art skills need more practice.  Hot

 

image

 

How to configure

  • Download x64 MSI from http://www.iis.net/download/ApplicationWarmUp
  • Login to Windows 2008 R2 as local admin and install
  • Open INETMGR and browse to the website that needs warm up
  • Open Application Warm-Up feature icon
  • Click Add Request and give the relative URL to the homepage ASPX (without / prefix)
  • Click Settings and check both boxes
  • Click Edit User Context, select “Set Username and Type only”, and provide Windows credentials.  This doesn’t have to be the farm account, but that’s what I used for simplicity.  Anyone with Read permission should work.

How to test

  • Open Internet Explorer to the homepage ASPX
  • Open CMD and Task Manager side-by-side
  • Type “IISRESET” and press enter
  • Type “APPCMD LIST WP” and press enter
  • Type “IISRESET” and press enter again
  • Refresh IE while watching Task Manager. 

You’ll see a new PID (process identifier) number for the newly created W3WP worker process.  The IE page should continue to load instantly without delay.  By running “APPCMD LIST WP” again you will see a new PID for the application pool.  The warm up feature has successfully created and warmed up a new worker thread without any outage.  The only downside I can foresee is the need for more RAM.   Running parallel W3WP threads requires more physical memory during the full process (recycle / warm up / release).

IIS 7.5 native SharePoint warm up (MUST SEE) from Jeff Jones on Vimeo.

image

image

image

image

image

Error: Cannot connect to PerformancePoint Services (FIXED)

I saw this today and was completely confused because I had literally just finished creating the Service Application in PowerShell and knew it was successful.   The root cause was a missing Service Connection.  Creating the SA was only the first step, I also need to associate it to the default proxy groupFiddler was handy here to quickly isolate the error.   I actually wrote PowerShell code that that but seem to have lost it during a VM snapshot restore, urg.

Cannot connect to PerformancePoint Services. Contact the administrator for more details.

Other possible causes:

  • Central Admin > Missing a Performance Point Service Application?  Make sure you have one.
  • Site Collection Feature > PerformancePoint Services needs to be active.   I use the Business Intelligence Center template to make this easier.
  • TCP/HTTP.  Don’t forget basic connectivity.  If you are using multiple servers make sure you can reach the remote host, use Fiddler to watch the connection attempt

 

image

 

image

image

Error: Cannot connect o PerformancePoint Services (FIXED)

I saw this today and was completely confused because I had literally just finished creating the Service Application in PowerShell and knew it was successful.   The root cause was a missing Service Connection.  Creating the SA was only the first step, I also need to associate it to the default proxy groupFiddler was handy here to quickly isolate the error.   I actually wrote PowerShell code that that but seem to have lost it during a VM snapshot restore, urg.

Cannot connect to PerformancePoint Services. Contact the administrator for more details.

Other possible causes:

  • Central Admin > Missing a Performance Point Service Application?  Make sure you have one.
  • Site Collection Feature > PerformancePoint Services needs to be active.   I use the Business Intelligence Center template to make this easier.
  • TCP/HTTP.  Don’t forget basic connectivity.  If you are using multiple servers make sure you can reach the remote host, use Fiddler to watch the connection attempt

 

image

 

image

image

How To: FREE internal SharePoint email (IMAP/POP/SMTP) inbound and outbound

If you haven’t seen http://www.hmailserver.com/ please go download a copy .  To fully demo SharePoint inbound and outbound email features on a local virtual machine I needed something simple.   Without any network dependency, I am able to send and receive emails between SharePoint and users.  Below are the steps I followed to create my single server SharePoint 2010 DEV environment.  I haven’t seen any other blog post on this important topic so hope someone finds this helpful.

Here is the final topology:

image

  1. Install SharePoint (2010 or 2007, works great on both)   I recommend Brian’s http://autospinstaller.codeplex.com/ script with Todd’s CU patch slipstream for a reliable build.  I run the Dec 2010 CU patch level.
  2. Install SMTP from Windows Server Manager   (details here)   Configure on TCP port 26 with FQDN as the host header (i.e.  “sp2010.demo.com”)
    • image
    • image
    • image
  3. Install and configure hMailServer.   This is most of the work and screenshots below show the various options I changed.
    • Configure with MSSQL storage and point to the SQL instance SharePoint uses during first install.  Don’t slow the machine with an extra SQL express instance.
    • Disable POP3.   Invented for dial-in, we can do better with IMAP.
    • image
    • Create user accounts.  I have admin@demo.com here.   I did not use Windows Authentication, but just typed in the password manually.   I realize this creates a duplicate password record to update, but it seemed more reliable during IMAP connections.  I had trouble using Windows only.  This more direct (non-Windows) authentication will login with the full email address as the user name (admin@demo.com) and has no dependency on any Active Directory user object.
    • image
    • Disable AutoBan.   During failed logins this could lock the user account, excessive for DEV.
    • image
    • Set “127.0.0.1” on the TCP listener for IMAP (143) and SMTP (25).    We reserved port 26 for the IIS SMTP that hits a drop folder for SharePoint’s timer job.   Here we will use the standard port because SharePoint Central Admin’s outbound email settings page only uses port 25 and only support a hostname configuration.
    • image
    • Enable mail relay.  This will allow FQDN (i.e. sp2010.demo.com) messages to reach the IIS SMTP drop folder and SharePoint.
    • image
    • Add MX record for both domain (i.e.  “demo.com”) and FQDN (i.e. “sp2010.demo.com”).   MX records help SMTP and mail clients route correctly.
    • image
    • Run Diagnostics.   If done correctly everything shows green.
    • image
  4. Configure SharePoint email
  5. Configure mail client (Windows Live Mail)
    • Pretty easy but the trick is to get the IMAP/SMTP server name and port numbers typed correctly.   Save the password.
    • image
    • image
    • image
    • image
  6. Test scenarios 
    • Send to SharePoint library.   Configure a library to receive email, make note of the address.   Send a test message with attachments.   Wait up to 5 minutes, you should see new content in SharePoint now.
    • Receive SharePoint alert.   Subscribe to an alert.  You should see a welcome message.  Trigger the alert by uploading content.   You should see a single notification.
    • User to user.   Make a second user and send a message from that person.   You probably need to Log Out between sessions, but it proves the internal hMail user mail routing works.
  7. Enjoy and grab a cold beer!

So there you have it.   I’ve tried many techniques (2nd VM, Exchange, SMTP only) and this is the best combination I’ve found yet.  It allows fully inbound and outbound for SharePoint along with peer-to-peer email amongst users.  It also works great on SharePoint 2007.   This robust functionality allows me to demo anything SharePoint can offer with the confidence it will work flawlessly.  If you have any questions or comments please feel free to leave them below.  I always enjoy hearing from people.  Hot

Note Board–Comment on external sites

While reviewing the new social features I noticed this interesting hyperlink on the “My Profile” page.   It allows users to bookmark a special link which they can use to extend “I like It” and “Tags & Notes” features beyond SharePoint to comment on external websites.

I was curious to look under the hood and understand how this could be done technically.

A complete JavaScript function is added to your bookmark in the URL field and executes when clicked.   The browser context holds the external site’s detail and is passed to SharePoint as GET parameter in the URL.   There is a safety check for SharePoint sites.   If the dialog function exists (CORE.JS) then we can assume we are on a SharePoint page and display the dialog instead of a full page.

The special character escaping is very clever and gives us a single line of text which JavaScript can execute.

 

image

image

ORIGINAL

javascript:var%20d=document,l=d.location,e=encodeURIComponent,du='http:u002fu002fsp2010:8080u002f_layoutsu002fSocialDataFrame.aspx',u=du+'?Title='+e(d.title)+'&Src=bm'+'&DisplayUrl='+e(l.href)+'&Url='+e(l.href); if (typeof(OpenTagDialog)=='function') {    OpenTagDialog(du);}else{    if(!window.open(u,null,'toolbar=0,status=0,resizable=0,scrollbars=1,width=650,height=400')) {        l.href=u;    }}void(0);

SPACED FOR EASY READING

javascript:
var%20d=document,
l=d.location,
e=encodeURIComponent,
du='http:u002fu002fsp2010:8080u002f_layoutsu002fSocialDataFrame.aspx',
u=du+'?Title='+
e(d.title)+
'&Src=bm'+
'&DisplayUrl='+
e(l.href)+
'&Url='+
e(l.href);
 
if (typeof(OpenTagDialog)=='function') {
    OpenTagDialog(du);
}
else
{
    if(!window.open(u,null,'toolbar=0,status=0,resizable=0,scrollbars=1,width=650,height=400')) {
        l.href=u;
    }
}
void(0);
Return to Top ▲Return to Top ▲