Author Archives: Chris

CSS, Javascript, Images cause 500 errors after IIS Website upgrade

Symptoms

A website has been copied from a server running IIS 6 (Windows Server 2008) to a server running IIS 10 (Windows Server 2019). Pages do not render correctly, and further investigation shows that pictures, css files, and javascript are all failing with 500 (Internal Server Error) responses. This is shown here in the F12 view in Chrome.

 2020-02-13_11-18-38

Trying to access one of these static files directly also fails and just shows the message “The page cannot be displayed because an internal server error has occurred.

2020-02-13_11-17-35

Cause

In my case, the site was referencing the FontAwesome package which uses the WOFF file type. In the older IIS this MIME type was not registered so required a manual entry in the configuration. In the newer IIS this is handled natively and the manual configuration is now causing a problem rather than remediating one.

Solution

Check the web.config file for a reference to “woff” for example

<mimeMap fileExtension=”.woff” mimetype=”application/font-woff” />

and comment out or remove this line.

2020-02-13_11-20-07

Refresh the page in your browser and it should now load correctly.

Note Taking at Conferences

When I’m in sessions at conferences I’m often a prolific note-taker. I find the process itself of writing things down has benefit as well as the resulting pages of scribbles. In this post I’ll discuss a few things that work for me, some of which you may want to try yourself.

Paper or Electronic?

startup-593327_1920-pixabayA tricky decision. I do like my paper notebooks, but there are definite advantages in terms of on-the-fly editing, photography, and post-event reference of using an electronic device to take notes. Depending on the event, what I’m carrying, and whether I remembered to recharge my tablet the night before, I will swap between the two quite happily.

When I do take paper notes I try to remember to scan them in afterwards- I use the Microsoft Office Lens tool to get them into OneNote.

When I’m going digital I usually use an Apple iPad Air, Adonit Jot Pro pen, and Microsoft OneNote. I’ve tried a number of different tools here and these work best for me. I’ve found I’m generally too slow at typing to keep up with many presenters, and it’s harder to interleave quick drawings into my notes without the pen device.

Preparing

If you know in advance what sessions you’re going to be attending (or have a few minutes whilst waiting for the hall to fill up) then it’s good to prepare. On OneNote I often start a new section for the event and a new page for each session I’m attending. The page can be pre-populated with the abstract of the talk copied and pasted from the conference website. This not only helps make sense of what I was scribbling about when I look at it a few months later, but also provides a lot of searchable context on the page.

Photos

If you’re using a device with a camera to record notes then taking pictures of any slides can be beneficial to note taking. Most conferences will publish complete slide decks after the event so I don’t worry too much about getting a perfect shot or a complete set, but having key slides included in my notes can be useful.

Sometimes a quick pic of the title slide if it’s up before the session starts can be useful, especially if there’s contact info for the speaker or a link to the slide deck.

At a recent “Microsoft Ignite: The Tour” event most of the presentations included an early slide which covered the structure of the upcoming talk. I took a photo of this and then used these sections to organise my notes during the rest of the session.

2020-01-20_13-26-20

If you know the slide deck is going to be available, you can also forgo some of the photos and make a quick note, something like “Great diagram on slide showing this architecture”, and then go back later after the event and look it up.

One small request though- please don’t be one of those people who spends the whole talk waving their phone/ iPad in the air (unless you’re sat on the back row). It can be very distracting for other people in the audience.

A bit of Colour

Whether my notes are on paper or on the screen I like to use different coloured pens and highlighters in my notes. I find it helps make my notes more readable in the aftermath of an event and draws my attention to important points I need to understand or follow up on.

When watching conference sessions, webinars, podcasts, and so on I often get those moments of “ooh, that would be useful in my environment”. These I’ll jot down somewhere on the page and usually highlight or put in a particular coloured box, so I can refer back to them later.

Conclusion

My notes are taken for my own use, but it’s worth considering who your audience is. If you want some great examples of notes designed for public consumption then I’d recommend checking out Barry Coombs’ “Tech Doodles” as something to aspire to.

Hopefully this insight into my note taking has given you some ideas, try them out and remember to do what works for you. Next week (January 2020) I’ll be at Cisco Live Europe, sat in the front row taking notes.

Azure- Why is my OS disk bigger than I asked for?

When spinning up a VM from a marketplace image using the Azure Portal you don’t get a choice of OS disk size, and if you specify a size in an API call it’s ignored. For example when deploying Ubuntu images a 32GB default OS disk is always created.

This is because the size is defined in that marketplace template. We can use the Azure CLI to pull out this information.

az vm image list
returns a list of Marketplace Images. Then:

az vm image show --urn "Canonical:UbuntuServer:18.04-LTS:latest"
Returns
{
 "automaticOsUpgradeProperties": {
    "automaticOsUpgradeSupported": true
 },
 "dataDiskImages": [],
 "hyperVgeneration": "V1",
 "id": "/Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/18.04-LTS/Versions/18.04.201911130",
 "location": "westus",
 "name": "18.04.201911130",
 "osDiskImage": {
     "operatingSystem": "Linux",
     "sizeInBytes": 32213303808,
     "sizeInGb": 31
  },
 "plan": null,
 "tags": null
}

The “sizeInGb” entry shows us that a 31 GB OS disk is part of the template provided by Canonical. Other templates are similar, CentOS is 1GB smaller at 30GB and RHEL is 64GB.

If a smaller OS disk is required then a custom template can be used in place of the Marketplace one, but there’s a certain level of maintenance required to keep that up to date.

PowerShell Get-Command: finding the cmdlet

A recent Slack chat reminded me that PowerShell’s Get-Command cmdlet is a good way of finding what commands to use when you encounter a new problem. However it goes beyond typing “Get-Command” and just getting a huge list back- my laptop just gave me 7659 commands to choose from – as this can be unusable. Here’s some quick tips on focussing your search by using the built in arguments.

1. –module

PowerShell and it’s extensions are comprised of modules. If you want to use the cmdlets for interacting with a VMware environment you install their “PowerCLI” module. Get-Command can return just the cmdlets from a specific module, for example we can list all the cmdlets from the VMware modules

Get-Command –Module VMware.*

Or we can list the commands in the Azure Compute PowerShell module

Get-Command –Module Az.Compute

2. –verb

If you’ve used PowerShell before, you’ll know that cmdlet names are all of the format verb (“a doing word” as I was taught at school), followed by a dash,  followed by a noun. So we have Measure-Object, Remove-Disk, and even Get-Command itself. The “-verb” argument can be used to only show us cmdlets with this verb, for example to only see the “Get” cmdlets we use

Get-Command –Verb Get

3. –noun

So, after the dash we have the noun. A disk, network connection, user account, and so on. So to find out all the cmdlets that work on or with services:

Get-Command –Noun Service

4. Combining the above

Of course we can make this even more powerful by combining these arguments together and with wildcards. Let’s say we want to know all the cmdlets for working with VMware vSphere tags?

Get-Command –Module VMware* –Noun *Tag*

Or if we want to find all the get Azure get commands for working with resources, resource groups, resource locks and so on.

Get-Command -Module Az.* -Verb Get -Noun *resource*