Retorno WebAPI e ODataController 406 não aceitável

Antes de adicionar o OData ao meu projeto, minhas rotas foram configuradas assim:

       config.Routes.MapHttpRoute(
            name: "ApiById",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional },
            constraints: new { id = @"^[0-9]+$" },
            handler: sessionHandler
        );

        config.Routes.MapHttpRoute(
            name: "ApiByAction",
            routeTemplate: "api/{controller}/{action}",
            defaults: new { action = "Get" },
            constraints: null,
            handler: sessionHandler
        );

        config.Routes.MapHttpRoute(
            name: "ApiByIdAction",
            routeTemplate: "api/{controller}/{id}/{action}",
            defaults: new { id = RouteParameter.Optional },
            constraints: new { id = @"^[0-9]+$" },
            handler: sessionHandler

Todos os controladores fornecem Get, Put (o nome da ação é Create), Patch (o nome da ação é Update) e Delete. Como exemplo, o cliente usa esses vários URLs padrão para as solicitações de CustomerType:

string getUrl =  "api/CustomerType/{0}";
string findUrl = "api/CustomerType/Find?param={0}";
string createUrl = "api/CustomerType/Create";
string updateUrl = "api/CustomerType/Update";
string deleteUrl = "api/CustomerType/{0}/Delete";

Em seguida, adicionei um controlador OData com os mesmos nomes de ação que meus outros controladores API. Eu também adicionei uma nova rota:

        ODataConfig odataConfig = new ODataConfig();

        config.MapODataServiceRoute(
            routeName: "ODataRoute",
            routePrefix: null,
            model: odataConfig.GetEdmModel()
        );

Até agora, não mudei nada no lado do cliente. Quando envio uma solicitação, recebo um erro 406 Não disponível.

As rotas estão se misturando? Como posso resolver isso?

questionAnswers(13)

yourAnswerToTheQuestion