
Ok, silliness aside, WTF? At first I thought I was going insane. After wasting about 20 minutes thinking it was my fault, I realized it had to be something else. Well, it turns out that, by default, IIS Express doesn’t handle PUT and DELETE. So it isn’t a WebAPI thing, it is an IIS Express thing, but it isn’t immediately obvious what the problem is.
A little googling, a little reading, and I stumbled upon this post that explains how to update IIS Express (as well as IIS proper):
- Open the IIS Express config file (located at C:\Users\
\Documents\IISExpress\config\applicationhost.config) - Find the key “ExtensionlessUrl-Integrated-4.0”
- Add PUT and DELETE to the “verb”
<add name="ExtensionlessUrl-Integrated-4.0"
path="*."
verb="GET,HEAD,POST,DEBUG,PUT,DELETE"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />