سؤال

وهنا بلدي Global.asax

    protected void Application_Start()
    {
        RegisterRoutes();
    }

    private static void RegisterRoutes()
    {
        AreaRegistration.RegisterAllAreas();

        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);

        GlobalConfiguration.Configure(x => x.MapHttpAttributeRoutes());
        GlobalConfiguration.Configuration.EnsureInitialized();
    }

ها هي وحدة تحكم Web Api الخاصة بي

    [RoutePrefix("api/admin/users/")]
    public class UsersController : ApiController
    {
        [Route("get")]
        public IQueryable<User> GetUsers()
        {
            return db.Users;
        }
    }

وهذا هو الخطأ الذي يظهر لي عندما انتقل إلى المضيف المحلي:123/api/admin/users/get

The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.

ليس لدي أي فكرة عما أفعله الخطأ هنا.أعتقد أنني أفعل كل شيء بشكل صحيح من أجل طريقة WebApi 2.0 الجديدة، لكني أفتقد شيئًا ما.

شكرا لك مقدما.

تحديث

ها هي المكدسة في حال كانت مفيدة

at System.Web.Http.Routing.RouteCollectionRoute.GetRouteData(String virtualPathRoot, HttpRequestMessage request) 
at System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext)
هل كانت مفيدة؟

المحلول

يرجى الإزالة

    GlobalConfiguration.Configure(x => x.MapHttpAttributeRoutes());

من Global.asax.

ثم اتصل MapHttpAttributeRoutes في ال WebApiConfig.cs

    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();
    }

نصائح أخرى

في حالتي، كنت أتلقى هذا الخطأ لأنني كنت أقوم بتكوين Autofac قبل WebApi:

GlobalConfiguration.Configure(WebApiConfig.Register);
GlobalConfiguration.Configure(AutofacConfig.Register);

لقد أدى تغيير الترتيب إلى تجاوز هذه المشكلة:

GlobalConfiguration.Configure(AutofacConfig.Register);
GlobalConfiguration.Configure(WebApiConfig.Register);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top