2016-05-18 4 views
1

Я хочу использовать SignalR и Nacyfx на моем сервисе. Поэтому я попробовал его с Owin Selfhost. Я запустил свой SignalR, и я могу получить доступ к нему из моего клиента Angular2, и я могу получить доступ к моему клиенту из SignalR, поэтому с помощью SignalR все кажется прекрасным. Но когда я пытаюсь получить/получить данные от Нэнси, я терпеть неудачу. Я не могу получить доступ к моей Нэнси от моего Клиента. Я выполняю свою службу в другом порту, чем мой сайт.Использование SignalR и Nancyfx на Owin Selfhost || Angular2 on Clientside

Программа:

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(); 
     } 
    } 
} 

запуска:

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

Hub, что-то вроде этого:

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(); 
    } 
} 

Так что мой SignalR работает с настоящим Кодексом.

И моя Нэнси выглядит следующим образом:

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

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

На стороне клиента я судимый доступ к Нэнси с чем-то вроде этого:

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 
    } 
} 

Я не могу понять, если я просто доступ Nacy неправильно от моего Клиента или если я получил некоторые ошибки на Сервере. (Веб-страница работает на порту: 3000 на данный момент)

В случае, если вы указали больше информации или более кода, просто спросите, но я надеюсь, что у меня есть самые важные вещи.

Было бы здорово, если бы некоторые из вас могли помочь мне с этой проблемой!

Обновление

При обращении через браузер газона в адресной строке Nancy показывает 404 Ошибка (также показывающий Nancy tabicon). Таким образом, его работа, но я не могу получить доступ к ней правильно.

ответ

1

После одной полной недели отчаяния я решил эту проблему.

Я чувствую Лил немного тупой, потому что произошла ошибка, потому что мой модуль не Public так

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

решил.

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

  • Нет связанных вопросов^_^