我在部署后访问 api 时从 azure 网站获取了此信息。它在本地运行得很好。
尝试创建“ItemController”类型的 Controller 时发生错误。确保 Controller 具有无参数公共(public)构造函数。
<Error><Message>An error has occurred.</Message><ExceptionMessage>An error occurred when trying to create a controller of type 'ItemController'. **Make sure that the controller has a parameterless public constructor.**</ExceptionMessage><ExceptionType>System.InvalidOperationException</ExceptionType><StackTrace> at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
at System.Web.Http.Controllers.HttpControllerDescriptor.CreateController(HttpRequestMessage request)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__0.MoveNext()</StackTrace><InnerException><Message>An error has occurred.</Message><ExceptionMessage>**Could not load file or assembly 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The module was expected to contain an assembly manifest**.</ExceptionMessage><ExceptionType>System.BadImageFormatException</ExceptionType><StackTrace> at RecycleMeOdataWebApi.Controllers.ItemController..ctor()
at lambda_method(Closure )
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)</StackTrace></InnerException></Error>
public partial class ItemController : ODataController
{
public ItemController()
{
}
private RecycleMeContext db = new RecycleMeContext();
// GET odata/Item
[Queryable]
public IQueryable<Item> GetItem()
{
return db.Items;
}
最佳答案
您的 Controller 只是缺少无参数公共(public)构造函数。
只需添加:
public ItemController()
{
}
它应该可以工作。
关于c# - Azure 网站上的 Odata/Web Api 错误 "Make sure that the controller has a parameterless public constructor",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23866649/