Nothing too obvious is wrong, although don't confuse filters with handlers.
Perhaps you are trying to make calls to the web API controller from a website running in another process, on a different port. Possible problem 1, 2, or both, may be caused.
Possible reason 1
Perhaps this is a CORS problem. It is hard to say without additional information from the answer. Try adding this to your Global:
var cors = new EnableCorsAttribute("*", "*", "*"); GlobalConfiguration.Configuration.EnableCors(cors);
and for checks before the fight, I will add the following to If , which you have in your custom handler:
if (request.Headers.Contains("Origin") && request.Method.Method == "OPTIONS") { var response = new HttpResponseMessage(); response.StatusCode = HttpStatusCode.OK; response.Headers.Add("Access-Control-Allow-Origin", "*"); response.Headers.Add("Access-Control-Allow-Headers", "Origin, Content-Type, Accept, Authorization"); //Worked before for deletes but CORS came back out of blue for deletes so changed * for DELETE and content doing al CRUD at the moment.. response.Headers.Add("Access-Control-Allow-Methods", "DELETE, POST, PUT, OPTIONS, GET"); }
If you need all this, install NuGet: Microsoft.AspNet.WebApi.Cors
Possible reason 2
You also need to make sure that machineKey set to the same configuration file for both.
Follow the instructions in the following URL to match the settings between the applications, and you should be fine:
https://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx