2015-01-28 2 views
1

Я пытаюсь заставить Ninject работать с проектом, который использует само размещение WebApi.Не удается получить webapi selfhost, работающий с ninject

Я установил пакет nuget Microsoft ASP.NET Web API 2.2 Self Host (Microsoft.AspNet.WebApi.SelfHost) вместе с Ninject.Web.Common.Selfhost.

Консольное приложение, похоже, правильно загружается, но я вижу, что при попадании в мой URL (http://localhost:8081/api/hello) возникает ошибка соединения. У меня есть аналогичное тестовое приложение, которое не использует Ninject, который работает правильно.

Я пытаюсь следовать за этот пост: https://github.com/ninject/Ninject.Web.Common/wiki/Setting-up-a-self-hosted-web-application

я упускаю что-то, чтобы получить это происходит? Первоначально я пытался использовать пакет Microsoft.AspNet.WebApi.OwinSelfHost, но не смог заставить его работать из-за различных ошибок. Если это то, что мне нужно использовать, я могу пересмотреть это.

public class HelloController : ApiController 
{ 
    public string Get() 
    { 
     return "Hello, world!"; 
    } 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     var webApiConfiguration = new HttpSelfHostConfiguration("http://localhost:8081"); 
     webApiConfiguration.Routes.MapHttpRoute(
        name: "DefaultApi", 
        routeTemplate: "api/{controller}/{id}", 
        defaults: new { id = RouteParameter.Optional }); 

     var mSelfHost = new NinjectSelfHostBootstrapper(CreateKernel, webApiConfiguration); 
     mSelfHost.Start(); 

     Console.ReadLine(); 
    } 

    private static IKernel CreateKernel() 
    { 
     var mKernel = new StandardKernel(); 
     mKernel.Load(Assembly.GetExecutingAssembly()); 
     return mKernel; 
    } 
} 

Вот пакеты Я установил:

<packages> 
    <package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.SelfHost" version="5.2.2" targetFramework="net45" /> 
    <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net45" /> 
    <package id="Ninject" version="3.2.2.0" targetFramework="net45" /> 
    <package id="Ninject.Web.Common" version="3.2.3.0" targetFramework="net45" /> 
    <package id="Ninject.Web.Common.Selfhost" version="3.2.3.0" targetFramework="net45" /> 
</packages> 
+0

Какое исключение вы получаете? –

+0

Почтальон просто возвращает это ... Не удалось получить ответ Это похоже на ошибку, связанную с http: // localhost: 8081/api/hello. Статус ответа был 0. –

+0

Вы пробовали скрипач? –

ответ

0

я был в состоянии решить эту проблему путем добавления Ninject.Web.WebApi.SelfHost первым. Это автоматически загрузило соответствующие пакеты WebApi. Прежде чем загружать пакеты WebApi, а затем добавляю Ninject.

Смежные вопросы