Używam interfejsu API sieci Web 2 i otrzymuję następujący błąd podczas wysyłania POST do mojej metody interfejsu API przy użyciu usług IIS 7.5 na moim lokalnym polu.
The inline constraint resolver of type 'DefaultInlineConstraintResolver' was unable to resolve the following inline constraint: 'string'.
Line 21: GlobalConfiguration.Configuration.EnsureInitialized();
Żaden z moich interfejsów API nie działa przy użyciu usług IIS. Mogę jednak uruchomić projekt interfejsu API w programie Visual Studio przy użyciu usług IIS Express i pomyślnie wykonać POST do mojego interfejsu API logowania, ale gdy próbuję wykonać żądanie GET do innego wywołania interfejsu API, pojawia się błąd mechanizmu rozpoznawania ograniczeń.
Aby rozwiązać ten problem, utworzyłem nowy projekt Web API 2 w programie Visual Studio i zacząłem importować istniejące interfejsy API do nowego projektu pojedynczo i uruchamiać je, aby upewnić się, że działają. Używając IIS Express w nowym projekcie, otrzymuję dokładnie takie same wyniki, jak w przypadku mojego istniejącego projektu API.
Czego tu brakuje? Nawet przy zupełnie nowym projekcie nie mogę wysyłać żądań GET bez napotkania tego problemu z rozpoznawaniem ograniczeń.
string
nie można zastosować żadnego ograniczenia.I jeszcze jedna rzecz, jeśli nie możesz użyć int, bool lub innego ograniczenia, jest on wrażliwy na klucz i musisz usunąć wszelkie spacje.
źródło
trim()
po rozdzieleniu i przed porównaniem ... Nie przycinanie strun używanych jako klucze jest moim głównym drażniącym zwierzakiem, cofając się aż do moich dni w FoxPro.Otrzymałem również ten błąd, gdy zostawiłem spację między nazwą zmiennej a typem zmiennej w trasie, na przykład:
Powinien wyglądać następująco:
źródło
Zaprojektowałem trasę API dla jednej metody Undo Web API i próbowałem zastosować walidację typu danych ENUM dla akcji w trasie i napotkałem poniżej Błąd DefaultInlineConstrainResolver
Aby zastosować ograniczenie ENUM, musisz utworzyć własne
OrderCorrectionEnumRouteConstraint
za pomocąIHttpRouteConstraint
.Źródła informacji (to jest mój blog): https://rajeevdotnet.blogspot.com/2018/08/web-api-systeminvalidoperationexception.html, aby uzyskać więcej informacji
źródło
Otrzymałem ten błąd, gdy wpisz jako zadeklarowany jako ciąg. Kiedy zmieniłem to na int, zaczęło działać
źródło