/ / Używanie SignalR i Nancyfx w Owin Selfhost || Angular2 na Clientside - kątowy, sygnalizujący, owin, nancy

Używanie SignalR i Nancyfx w Owin Selfhost || Angular2 na Clientside - kątowy, sygnalizujący, owin, nancy

Chcę używać SignalR i Nacyfx w mojej usłudze. Więc spróbowałem tego z Owinem Selfhostem. Mam uruchomiony SignalR i mogę uzyskać do niego dostęp od mojego klienta Angular2 i mogę uzyskać dostęp do mojego klienta od SignalR, więc wszystko wydaje się być w porządku z SignalR. Ale gdy próbuję uzyskać dostęp / otrzymam Dane z Nancy, nie uda mi się. Nie mogę uzyskać dostępu do mojej Nancy od mojego klienta. Prowadzę moją usługę na innym Port niż moja strona internetowa.

Program:

class Program
{
static void Main(string[] args)
{
string url = "http://+:2222";

using (WebApp.Start<Startup>(url))
{
Console.WriteLine("SignalR Server running on {0}", url);
Console.WriteLine();

Console.ReadLine();
}
}
}

Uruchomienie:

 class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR(new HubConfiguration() { EnableJSONP = true });
app.UseNancy();
}
}

Hub, coś takiego:

public class MyHub : Hub
{
private readonly static ConnectionMapper<string> _mappedConnections = new ConnectionMapper<string>();

public override Task OnConnected()
{
var user= Context.QueryString["user"];
_mappedConnections.Add(user, Context.ConnectionId);

Console.WriteLine("User connected: " + user);
Console.WriteLine();

return base.OnConnected();
}
}

Tak więc mój SignalR pracuje z tym Kodeksem.

A moja Nancy wygląda tak:

class NancyServiceModule : Nancy.NancyModule
{
private DatabaseAccess _dbAccess = new DatabaseAccess();
public NancyServiceModule() : base("/nancy/"){

Get["/accessible"] = parameters =>
{
return new Response
{
StatusCode = HttpStatusCode.OK
};
};
}
}

Na stronie klienta próbowałem uzyskać dostęp do Nancy z czymś takim:

export class DatabaseService {

constructor(
private _http: Http
) {}

getMachines(): Observable<Response> {

return this._http.get("http://localhost:2222/nancy/accessible");
//also tryed Hardcoded IP instead of localhost
}
}

Nie mogę się dowiedzieć, czy właśnie mam dostęp do błędnej informacji od mojego klienta, czy też mam błędy na Serverside. (Strona działa na porcie: 3000 w tej chwili)

Jeśli nedd więcej informacji lub więcej kodu po prostu zapytaj, ale mam nadzieję, że mam najważniejsze rzeczy.

Byłoby wspaniale, gdyby niektórzy z was mogli mi pomóc z tym problemem!

Aktualizacja

Podczas uzyskiwania dostępu do nancy za pośrednictwem paska adresu przeglądarki nancy pokazuje błąd 404 (również wyświetlający tabelę nancy). Więc w pewnym sensie działa, ale nie mam do niego dostępu.

Odpowiedzi:

1 dla odpowiedzi № 1

Po jednym tygodniu desperacji rozwiązałem ten problem.

Czuję się trochę głupi, ponieważ błąd wystąpił, ponieważ mój moduł nie był Public więc

public class NancyServiceModule : Nancy.NancyModule
{
....

rozwiązałem to.