I have checked everything and none of the configuration is working fine.
THE GET, POST is working however with put I am getting 405 message. I don't have WebDEV.
This is my configuration.
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV"/>
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
<remove name="OPTIONSVerbHandler"/>
<remove name="TRACEVerbHandler"/>
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
It is driving me nuts!
I have referred all available suggestions such as : Asp.NET Web API - 405 - HTTP verb used to access this page is not allowed - how to set handler mappings
Even though I am using Basic Auth/ Windows Auth. disabling this also makes no difference.
[System.Web.HttpHttpPut] public override HttpResponseMessage Put(int id, Request entity) { .... }
NOTE: I have just put on staging server and it has worked. However, it is not working on my machine...