2013-09-23 11 views
5

Gram z pakietem NuGet "Microsoft.AspNet.WebApi.SelfHost" w wersji "5.0.0-rc1" (wypróbowałem także obecną stację), ale niestety Nie mogę pobrać konfiguracji aplikacji, aby rozwiązać skonfigurowaną trasę do mojej implementacji ApiController.ASP.NET WebAPI Selfhost nie rozwiązał trasy do kontrolera

Aplikacja jest dość prosta i można ją znaleźć niemal we wszystkich przykładach. Zawiera aplikację konsoli .NET, w której w głównej klasie działa usługa hosta.

using System.Web.Http.SelfHost; 
using System.Web.Http; 
using System; 
namespace EP.Server 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     var config = new HttpSelfHostConfiguration("http://localhost:60064"); 
     config.Routes.MapHttpRoute(
      name: "Default Route", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

     using (var server = new HttpSelfHostServer(config)) 
     { 
      server.OpenAsync().Wait(); 
      Console.WriteLine("Server ist running on "+config.BaseAddress + " hit ENTER to stop."); 
      Console.ReadLine(); 
      server.CloseAsync().Wait(); 
     } 
    } 
} 
} 

, a następnie istnieje oddzielna klasa kontrolera, która mieszka w tym samym projekcie i dziedziczy z klasy ApiController.

using System.Web.Http; 

namespace EP.Server 
{ 
class UsersController : ApiController 
{ 
    [HttpGet] 
    public string Get() 
    { 
     return "Hello I'm a user..."; 
    } 
} 
} 

Ten komunikat o błędzie brzmi tak, gdy zadzwonię do usługi z dowolnej przeglądarki.

<Error> 
<Message>No HTTP resource was found that matches the request URI 'http://localhost:60064/api/Users'.</Message> 
<MessageDetail>No type was found that matches the controller named 'Users'.</MessageDetail> 
</Error> 

Czy ktoś ma pojęcie, co jest nie tak? Niestety nie mogłem znaleźć podobnych problemów/pytań w sieci.

Dziękuję, do tej pory!

+0

samo tutaj, jednak mój kontroler jest już * publiczny * i błąd nie ustępuje ... :( – JobaDiniz

Odpowiedz

14

Kontrolery Web API muszą być publiczne.

+0

Ohhh chłopcze, oczywiście, że powinny być, a potem wszystko działa dobrze .. Winić na mnie ... – ddankovics

+0

Hej Filipie, dziękuję To dość zabawne, ponieważ czytałem twoje zdanie z Twojego bloga i fajnie, że odpowiadasz. Czy mogę zadać jeszcze jedno pytanie? Rozszerzyłem teraz swój projekt w ten sposób, że obejmuję usługi od biblioteki zewnętrzne, co chciałbym teraz osiągnąć, to że chciałbym skonfigurować nowe usługi bez restartowania mojej podstawowej usługi WebAPI Chciałbym sprawdzić moją AppConfig dla nowych usług i załadować je, jeśli są one wymagane. t znaleźć sposób, aby to osiągnąć jeszcze. Czy możesz znaleźć rozwiązanie? – ddankovics

Powiązane problemy