私はthisのチュートリアルに従ってWebAPI RESTサービスを作成しました。OData以外のHTTPルートが登録されていません
その後、私はhttp://baseaddress/api/Contacts
を指すことによってすべての連絡先のリストを読み込むことができました。
はそれからのODataエンドポイントを可能にするためにWebApiConfig.csにRegister
方法で次のコードを追加:
config.Count().Filter().OrderBy().Expand().Select().MaxTop(null);
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Contact>("Contacts");
config.MapODataServiceRoute(
routeName: "OData",
routePrefix: "odata",
model: builder.GetEdmModel());
またはContact.GetContacts()
方法で[EnableQuery]
パラメータを追加しました。こうすることで、私はこのような特定の連絡先を問い合わせることができます:
http://baseaddress/odata/Contacts?$filter=startswith(Name,'A')
これは魅力的です。私は[EnableQuery]
を置くとき
残念ながら、WebAPIのエンドポイントは、代わりに次のエラーを示し、動作を停止:
No non-OData HTTP route registered.
in System.Web.OData.Extensions.HttpConfigurationExtensions.GetNonODataRootContainer(HttpConfiguration configuration)
in System.Web.OData.Extensions.HttpRequestMessageExtensions.GetRootContainer(HttpRequestMessage request, String routeName)
in System.Web.OData.Extensions.HttpRequestMessageExtensions.CreateRequestScope(HttpRequestMessage request, String routeName)
in System.Web.OData.Extensions.HttpRequestMessageExtensions.CreateRequestContainer(HttpRequestMessage request, String routeName)
...
私はこの問題を解決するにはどうすればよいですか?
この回答はありましたか?私は同じ問題に遭遇している。 ; ' ' httpConfiguration.EnableDependencyInjection(); ' ' VAR要求=新しいHttpRequestMessage(HttpMethod.Get 'VAR httpConfiguration =新しいHttpConfiguration(): –
@MichaelBowmanは残念ながら – Teejay