2016-05-18 3 views
1

私のサービスでSignalRとNacyfxを使いたいです。だから私はOwin Selfhostで試してみた。私はSignalRを稼働させており、私はAngular2 Clientからアクセスでき、私はSignalRからクライアントにアクセスすることができるので、すべてがSignalRでうまくいくようです。 しかし、私がナンシーからデータにアクセス/受信しようとすると失敗します。私はクライアントからナンシーにアクセスできません。 私のウェブサイトとは異なるポートでサービスを実行しています。Owin SelfhostでのSignalRとNancyfxの使用|| ClientsideのAngular2

プログラム:

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

ハブ、このような何か:

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

そして、私のナンシーがどのように見える私は間違ってnacyアクセスしていた場合

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

私が把握することはできませんクライアントから、またはServersideで何らかのエラーが発生した場合(Webページは現時点でPort:3000で稼働しています)

もっと情報を求めたり、もっと多くの情報を得たい場合は、コードを聞いてみてください。しかし、私は最も重要なことを願っています。

あなたの中にこの問題で私を助けることができたら嬉しいです!

更新

ナンシーは(もナンシーtabiconを示す)404エラーを示しているブラウザのアドレスバーを通じてナンシーにアクセスします。だから、その方法では、私はそれを正しくアクセスできません。

答えて

1

1週間の絶望の後、私はこの問題を解決しました。

エラーが発生したので、私のモジュールがそう

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

ないPublic だったので、私はlitleビットダム感じるが、それを解決しました。

関連する問題