Monday, April 10, 2017

Office Web Apps SSL Certificate Configuration Gotcha

Must find more time for publishing stuff. Plethora of ideas - but when it comes to time I am plethoraless.


Anyways, ran in to this one while configuring an Office Web Apps 2013 farm the right way using a certificate:

I had a certificate added to Certificates (Local Computer)\Web Hosting figuring that is where IIS would be looking for it when I created a new OWA farm. 

But when I ran this:
New-OfficeWebAppsFarm ... -CertificateName "TheCorrectCertificateFriendlyName"

I got this:
New-OfficeWebAppsFarm : Office Web Apps was unable to find the specified certificate.


Solution:
Add the certificate to Certificates (Local Computer)\Personal because the command will find it if you do.
Wednesday, June 22, 2016

Quick AngularJS $location Tip

Usually we use the following line of code to navigate around within an AngularJS single page application:

$location.path(path);

This works fine most of the time, but depending on context, it might appear to do nothing. This is because the code only works within a digest loop. To ensure your navigation actually happens, wrap the call to path within a $timeout:

$timeout(function () {
    $location.path(path);
});
Thursday, March 3, 2016

SharePoint 2013: Cannot Configure App URLs

Configuring SharePoint 2013 Apps is kind of a pain in the A: In addition to all of the DNS work that needs to be done (FYI: usually the SharePoint guy has no permission to change DNS, and in most organizations changing DNS in ANY way requires approval from someone who ranks Jesus level or higher), but then there is all of the supporting services, service apps, and service app proxies. Not to mention the shell Web Application, the certificate procurement and configuration if you are using SSL, etc.

A Google search will get you the basic list of these services that need to be running:

  1. App Management Service 
  2. Microsoft SharePoint Foundation Subscription Settings Service 
  3. App Management Service Application & Proxy 
  4. Microsoft SharePoint Foundation Subscription Settings Service Application & Proxy

So you are done, right? DNS - check. Shell Web Application - check. Certificate configuration - check. Services & Service Apps - check-to-all.

But then you head in to Configure App URLs, and you are hit with this:

  "The Subscription Settings service and corresponding application and proxy needs to be running in order to make changes to these settings.

So you check and re-check that things are running. And they are. So what to do? Oh - I know, you probably forgot the super secret additional thing that needs to be running that SharePoint is not telling you about:


  Ensure the Security Token Service app pool is running. 


For me, the STS app pool was running on the WFE's, but the app server where the services were running had the app pool stopped. All was working fine - no idea why the app pool was stopped - but I guess it was too much to ask that the ACTUAL problem is reported back to me rather than reporting something that was completely false. But I guess it would not be called SharePoint if it didn't try to waste your time...
Wednesday, June 17, 2015

Simple 'Sticky' Plugin compatible with SharePoint 2010 + SharePoint 2013

Sticky elements. Not only do they make me hungry when I hear about them, but they are also very nice for keeping the user aware of their current context, keeping some key UI elements like toolbars in close reach, and I am sure lots of other things.


Here is a very tiny jQuery plugin that I developed for making elements sticky. There are many others out there - some that do more - but none I could find that were 100% compatible with the default SharePoint master pages. If you have done any work with the scrollable areas within the default SharePoint HTML, you know what I am talking about. The way the ribbon and the 'workspace' areas work are a little funky. This plugin gives you the power of sticky within this context - and should also work fine for any situation where you want something to be sticky within a scrollable DIV element.


Usage:
  1. Include script in page.
  2. $("<selector>").floater();


Options:
  • startOffset  When the 'stickiness' should be invoked.
  • offsetY  When stuck, how close to the parent element should element be.
  • stickyClass Css class added to element when stuck. Removed when un-stuck.
  • onStart Event to invoke when sticky happens.
  • onStop Event to invoke when un-sticky happens.

Tuesday, April 29, 2014

Custom Content Type Deployment Tip for Visual Studio 2010

Scenario: You add a custom content type to your Visual Studio 2010 project. Because you have been bitten by the lowercase Content Type ID problem before (see here: https://connect.microsoft.com/VisualStudio/feedback/details/709500/visual-studio-2010-sharepoint-project-template-content-type-generated-through-visual-studio-has-id-guid-in-lower-case-causing-custom-actions-to-fail ), you quickly turn the Content Type ID to UPPERCASE using the handing Ctrl+Shift+U shortcut. You are pretty much a shortcut badass. Visual Studio 2010 generates Content Type ID’s lowercase by default.

Visual Studio gives you:
<ContentType ID="0x010059b2dab8444144e68f7f9baaa134dbf0" …
..so then you upper-case it to:
<ContentType ID="0X010059B2DAB8444144E68F7F9BAAA134DBF0" …
…to ‘avoid’ problems.



Problem: When you try to deploy your solution, you get a ‘Value is out of range’ error. No logged info beyond that. Helpful as always.

Solution: See the ‘X’ near the beginning of the Content Type ID? It MUST be lowercase. When upper-casing it, you may accidentally uppercase that character too. This totally explodes whatever parsing is done on that ID when it is read from the schema file.

And then you fix it:
<ContentType ID="0x010059B2DAB8444144E68F7F9BAAA134DBF0" …
 
Wednesday, April 16, 2014

SharePoint 2013 Chrome Control Parameters List

I had a hard time Google-Binging this information – so here is what I dug directly out of the source:

Param Name Description
siteTitle The title of the site.
siteUrl The url of the site. [This is easy!]
clientTag ? Tag the page ?
appWebUrl The current app web url.
onCssLoaded Callback function for when chrome control is done loading. [Great naming there!]
assetId ? The app’s id in the catalog ?
appStartPage Start page of app web. Need to test this…
rightToLeft For those languages that go against the grain.
appTitle Title of the app. [Back to easy street!]
appIconUrl The url of the app icon.
appTitleIconUrl Titles need icons too.
appHelpPageUrl The url of your very useful help page.
appHelpPageOnClick Use this to alert(‘No help 4 U!’)
settingsLinks Array of links to put under the ‘options’ wheel.
language ¿QuĂ© diablos?
bottomHeaderVisible Hide the bottom header.
topHeaderVisible Guessing this may hide the top header. Since chrome control does so much to everything in addition to the top header [sarcasm], I can see never using this option.

Tuesday, December 17, 2013

SharePoint s4-notnotdlg: The opposite of s4-notdlg

[Until I do, this is a warning about this only being tested in 2010]
So there is a CSS class in SharePoint that allows you to have content that will NOT show up in any dialog: The s4-notdlg class. Pretty easy: just add the class to your fancy branding, elements, etc. and it will be excluded when element is displayed in a SharePoint dialog.

 

But what about the opposite: Is there a class that lets you have content that will ONLY display in a dialog? No, there is not. But through the magic of CSS selectors, you can accomplish this behavior pretty easily:

 
© I caught you a delicious bass.
Back to top