Existing Umbraco installation fails after installing Articulate blog (or anything that schedules posts)

2017-04-06 13:42:45,673 [P3048/D15/T45] ERROR Umbraco.Web.Scheduling.KeepAlive – Failed (at “http://(domain)/umbraco”).
System.Threading.Tasks.TaskCanceledException: A task was canceled.
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Umbraco.Web.Scheduling.KeepAlive.<PerformRunAsync>d__4.MoveNext()

This may be related to: http://issues.umbraco.org/issue/U4-5965 :

“Create config to explicitly set the ‘base url’ for a website that is not running as a load balanced site – used for scheduled tasks/publishing/keepalive”

Setting umbracoApplicationUrl=”https://(domain name)/Umbraco” in Config/umbracoSettings.config …and restarting the application pool and the website has fixed the problem; the site is responsive once more and the required  nodes have been published:
2017-04-06 14:15:00,997 [P3460/D2/T30] INFO Umbraco.Core.Publishing.PublishingStrategy – Content ‘Blog’ with Id ‘3316’ has been published.
2017-04-06 14:15:01,544 [P3460/D2/T30] INFO Umbraco.Core.Publishing.PublishingStrategy – Content ‘Archive’ with Id ‘3317’ has been published.
2017-04-06 14:15:01,638 [P3460/D2/T30] INFO Umbraco.Core.Publishing.PublishingStrategy – Content ‘Test post’ with Id ‘3320’ has been published.
2017-04-06 14:15:01,716 [P3460/D2/T30] INFO Umbraco.Core.Publishing.PublishingStrategy – Content ‘Authors’ with Id ‘3318’ has been published.
2017-04-06 14:15:01,779 [P3460/D2/T30] INFO Umbraco.Core.Publishing.PublishingStrategy – Content ‘Demo author’ with Id ‘3319’ has been published.



LetsEncrypt with Umbraco – serving static, extensionless URLs within an Umbraco installation.

Situation; you have a bunch of domains and subdomains which are secured using Letsencrypt. by default, Letsencrypt will try to put a static, extensionless file like named e.g.  “jCk1zSkjsiuJHrmnSFnxdvkhkjnnNNkjsaaRo” in a “/.well-known/acme-challenge/” subfolder of the site root.

If that file isn’t reachable and browsable – the Letsencrypt acme servers won’t authenticate your domain. Letsencrypt will warn you at this point and recommend re-ordering the IIS Handler Mappings to promote the “StaticFile” handler above the three “ExtensionlessUrl” handlers.

However even if you reorder the handlers, you’ll still see a 404-page not found error when browsing directly to the static file’s URL e.g. http://yourdomain/.well-known/acme-challenge/jCk1zSkjsiuJHrmnSFnxdvkhkjnnNNkjsaaRo

If you check the logs in your Umbraco /App_Data/Logs directory, you may see “Status code is 404 yet TrySkipIisCustomErrors is false – IIS will take over”

IIS won’t log anything useful though.

What’s happening can only be seen once you tell Umbraco not to pass error handling onto IIS; so edit /Config/umbracoSettings.config and set trySkipIisCustomErrors=true

This will force Umbraco to print its own, more informative error, confirming the problem:

No umbraco document matches the url ‘/.well-known/acme-challenge/jCk1zSkjsiuJHrmnSFnxdvkhkjnnNNkjsaaRo’

Finally; to fix the problem and exclude the /.well-known/acme-challenge/ directory from Umbraco’s control, you need to edit Umbraco’s main Web.config file, and add the following:

<add key=”umbracoReservedPaths” value=”~/umbraco,~/install/,~/.well-known/,~/.well-known/acme-challenge/” />

The next time you load http://yourdomain/.well-known/acme-challenge/jCk1zSkjsiuJHrmnSFnxdvkhkjnnNNkjsaaRo in a browser, you should see a plain-text string of json that the acme server needs to authenticate your control of the domain for which you’re requesting the certificate.

Retrying the Letsencrypt client at this point should be successful.

Have a coffee and don’t forget to revert the logging and error handling changes you just made.


Umbraco fails to update log in App_Data/Logs directory – IIS 8.x – Fixed

Umbraco logs a great deal of helpful debugging information to its /App_Data/Logs subdirectory. If the log files aren’t present or haven’t been added to since a server migration, check that the App Pool user has modify access to the directory tree.

If your Umbraco application is running in an Application pool named “Umbraco Blog Dev” the automatically-generated App Pool user would also be named “Umbraco Blog Dev”

If the”Umbraco Blog Dev” user is missing entirely, add it as “IIS AppPool\Umbraco Blog Dev” in the usual permissions dialogue and add modify access afterwards.

Note: the “IIS AppPool…” prefix is essential, as is the server-name Location scope; Windows won’t find the virtual user without both present.


Transfer Previous Recipients and Facetime contacts between macs on Mavericks and Yosemite Mail

Recovering a trashed Mail installation from an orphaned drive or just want to transfer Recents without using VCards?

The files you’ll need to copy are:


Optionally, copy the other “recents” plists as well for facetime, maps, iCal, messages etc:

…and finally reboot your mac to force the operating system to reload the new plists – instead of using cached copies.


-fix- Linux and Grub wait forever after a hypervisor ACPI shutdown.

This is a designed-in feature of grub – useful if you’ve got a physical machine in front of you, as the linux box won’t automatically restart if someone kicks the power cable out or hits the off switch – and more importantly it won’t endlessly reboot if there’s a hardware problem, slowly shredding your file systems.

If you’re running Ubuntu as a headless virtual machine in the cloud, it’s not so useful. Disable it like this:

edit /etc/default/grub and add the line:


then sudo update-grub.

Next time you accidentally “sudo ip route flush table all” on your vm and acpi-restart it,  it’ll boot properly.





Workaround -fix- for missing “import” folder after attaching archives in Mac Mail 6.x

Archive folders detached and disappeared.
Re-imported them from ~/Library/Mail/V2/Mailboxes/…

and found a nice workaround for the missing “import” folder problem you hit if you try to import nested folder hierarchies in one go:

Try to import .mbox files first – if you click on through, the import will proceed, but you’ll never see any “import” folder created.  However when you next open the import dialogue and choose “Mac Mail” instead of .mbox, you’ll be able to see the contents of the nested folders, and drill down to the individual mboxes themselves.  Import them one at a time, then drag them into a coherent archive structure once you’re done.

ssh multiple identities -fix- “Too many authentication failures for { username }”

So; you regularly use ssh to connect to a few different hosts – using different private keys for each user/server combination.

Your  ~/.ssh/ directory already has a few named private keys in it – you add a couple, bring the total to 5 or more…

ls ~/.ssh/

….and try connecting:

ssh -i .ssh/sue_mars.id_dsa -l sue mars

You’re denied, with an error like:

Received disconnect from {mars' IP address} 2: Too many authentication failures for sue.

Which is confusing;  this may be the first time you’ve tried connecting to phobos with sue’s account.

Add the verbose switch to you ssh command:

ssh -v -i .ssh/sue_phobos.id_dsa -l sue phobos

You’ll see this at the end of the negotiation:

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: .ssh/dave_mars.id_dsa
debug1: Authentications that can continue: publickey
 debug1: Offering RSA public key: .ssh/sue_deimos.id_dsa
debug1: Authentications that can continue: publickey
debug1: Offering RSA public key: .ssh/steve_deimos.id_dsa
debug1: Authentications that can continue: publickey
 debug1: Offering RSA public key: .ssh/irene_phobos.id_dsa
debug1: Authentications that can continue; publickey
 debug1: Offering RSA public key: .ssh/lee_phobos.id_dsa
Received disconnect from {phobos' IP address}: 2: Too many authentication failures for sue

Your local ssh agent is offering any key it can find, pre-loaded and cached from the .ssh directory (prove this caching by moving the other named keys somewhere else on your system – they’ll still be offered). The -i flag is a more of a guideline or hint to the agent.

To force the ssh client to offer only the key specified by -i, use the

-o IdentitiesOnly=yes


ssh -o IdentitiesOnly=yes -i .ssh/sue_phobos.id_dsa -l sue phobos


ssh -o "IdentitiesOnly yes" -i .ssh/sue_phobos.id_dsa -l sue phobos

…you’re connected.


Fix for Filemaker Pro 10 on OSX 10.8.5’s inability to “remote open” databases.

Clearing up some overdue updates (10.8.4>>5) on a couple of Mountain Lion machines, I came across this:

FIlemaker 10.03 opens with no apparent problem, creates and plays fine with local databases, but dumbly refuses to list any on a server in the same subnet.

Telnet to the server’s port 5003 worked and the server itself was visible in the “open remote” dialogue, but where the databases should’ve been – pure snowy-white #fff.

cat /var/log/system.log | grep filemaker

…gave a clue;

com.filemaker.messages[579]: 2014-01-15 15:56:20.302 +0000 [AttachThread_acd0fa28] ConstructORB() caught a CORBA INITIALIZE exception

exceptions relating to CORBA – indicating, as nothing else in the app had changed, that the client wasn’t talking to the server securely any more. “Certificates” I thought. To think is to -g-o-o-g-l-e- duckduckgo.

Sure enough, the internet provided and lead me on to a similar fix for Filemaker Pro 9.x on Mountain Lion – relating to an old, ppc-only OpenSSL library. The iMacs we were using *had* worked – but the certificates in use dated back to 2003. Replacing them with more recent certs and restarting Filemaker Pro gave an instant, solid connection to the databases on the server.


Show Contents of the Filemaker Pro.app in /Applications, and replace the cert(s) with those from a more recent trial version (11 onwards):

/Applications/FileMaker Pro 10/FileMaker Pro.app/Contents/MacOS/root.pem

/Applications/FileMaker Pro 10/FileMaker Pro.app/Contents/MacOS/server.pem

Restart Filemaker.