Estou usando a API da Web 2 e recebo o seguinte erro ao enviar um POST para o meu método de API usando o IIS 7.5 na minha caixa local.
The inline constraint resolver of type 'DefaultInlineConstraintResolver' was unable to resolve the following inline constraint: 'string'.
Line 21: GlobalConfiguration.Configuration.EnsureInitialized();
Nenhuma das minhas APIs funciona usando o IIS. No entanto, sou capaz de executar meu projeto de API no Visual Studio usando o IIS Express e fazer um POST com êxito na minha API de logon, mas quando tento fazer uma solicitação GET para outra chamada de API, recebo o erro do resolvedor de restrições.
Para solucionar isso, criei um novo projeto de API da Web 2 no Visual Studio e comecei a importar as APIs existentes para o novo projeto, uma de cada vez, e executá-las para garantir que funcionem. Usando o IIS Express com este novo projeto, obtenho os mesmos resultados exatos que obtive no meu projeto de API existente.
O que estou perdendo aqui? Mesmo com um projeto novo, não sou capaz de fazer solicitações GET sem encontrar esse problema do resolvedor de restrições.
string
não pode aplicar nenhuma restrição.Mais uma coisa, se você não pode usar int, bool ou qualquer outra restrição, é sensível às chaves e é necessário remover quaisquer espaços em branco.
fonte
trim()
isso depois de dividir e antes de fazer uma comparação ... Não cortar cordas usadas como chaves é uma grande irritação minha que remonta aos meus dias no FoxPro.Também recebi esse erro quando deixei um espaço entre o nome da variável e o tipo de variável na rota, assim:
Deve ser o seguinte:
fonte
Projetei uma rota de API para um método Undo Web API e tentei aplicar a validação do tipo de dados ENUM na ação na rota e encontrada abaixo Erro DefaultInlineConstrainResolver
Para aplicar a restrição ENUM, é necessário criar personalizado
OrderCorrectionEnumRouteConstraint
usandoIHttpRouteConstraint
.Referência (este é o meu blog): https://rajeevdotnet.blogspot.com/2018/08/web-api-systeminvalidoperationexception.html para obter mais detalhes
fonte
Eu recebi esse erro ao digitar como declarado como string. Quando mudei isso para int, ele começou a funcionar
fonte