2017-12-12 11 views
0

私はWindowsサービスを作成し、そのexe my serverを実行します。 私のWindowsのサービスコードはasp.net windowsサービスを搭載したSignalr

public partial class Service1 : ServiceBase 
{ 
    private Timer timer1 = null; 
    public Service1() 
    { 
     // System.Diagnostics.Debugger.Launch(); 
     InitializeComponent(); 
    } 

    protected override void OnStart(string[] args) 
    { 
     timer1 = new Timer(); 
     this.timer1.Interval = 30000; 
     this.timer1.Elapsed += new 
     System.Timers.ElapsedEventHandler(this.timer1_tick); 
     timer1.Enabled = true; 
     Test_Library.writelog("Start"); 
    } 
    private void timer1_tick(object sender,EventArgs e) 
    { 
     Test_Library.writelog("Time-Ticker Started at "+ DateTime.Now); 
     string url = "https://localhost:8080/"; 
     try 
     { 
      Test_Library.writelog("Call Startup Class at "+ DateTime.Now); 
      WebApp.Start<Startup>(url); 
      Test_Library.writelog("End Startup Class at "+ DateTime.Now); 
     } 
     catch(TargetInvocationException ex) 
     { 
      Test_Library.writelog("Error in Startup Class at "+ DateTime.Now+ " Exception is : " +ex); 
      return; 
     } 


    } 

    protected override void OnStop() 
    { 
     timer1.Enabled = false; 
     Test_Library.writelog("Stop at " + DateTime.Now); 
    } 
} 

public class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 

     try 
     { 

      //Test_Library.writelog("SignalR Configuartion Started at "+ DateTime.Now); 
      //var hubConfiguration = new HubConfiguration 
      //{ 
      // EnableJSONP = true, 
      // EnableDetailedErrors = true 

      //}; 
      //app.MapSignalR(hubConfiguration); 
      app.Map("/Signalr", map => 
      { 
       map.UseCors(CorsOptions.AllowAll); 
       var hubConfiguration = new HubConfiguration 
       { 
        EnableJSONP = true, 
        EnableDetailedErrors = true 

       }; 
       map.RunSignalR(hubConfiguration);     
      }); 
     } 
     catch (Exception ex) 
     { 
      Test_Library.writelog("SignalR Error at " + DateTime.Now + " " + ex.ToString()); 
      //var writer = new StreamWriter("ClientLog.txt"); 
      //writer.AutoFlush = true; 
      //hubConnection.TraceLevel = TraceLevels.All; 
      //hubConnection.TraceWriter = writer; 
     } 
    } 
} 

public class MyHub : Hub 
{ 
    public void Send(string name, string message) 
    { 
     Clients.All.broadcastMessage(name, message); 
    } 
    public override Task OnConnected() 
    { 
     Test_Library.writelog("SignalR Client connected: " + DateTime.Now + " " + Context.ConnectionId); 
     // Program.mainForm.WriteToConsole("Client connected: " + Context.ConnectionId); 
     return base.OnConnected(); 
    } 

    public override Task OnDisconnected(bool tr) 
    { 
     Test_Library.writelog("SignalR Client disconnected: " + DateTime.Now + " " + Context.ConnectionId); 
     // Program.mainForm.WriteToConsole("Client disconnected: " + Context.ConnectionId); 
     return base.OnDisconnected(true); 
    } 
} 

そして、私のクライアントコードである[プロキシを生成されます。私は、Windowsサービスを実行し、サービスを開始すると(Server.js)]

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Signalr Simple Chat</title> 
    <script src="Scripts/jquery-1.6.4.min.js"></script> 
    <script src="Scripts/jquery.signalR-2.2.2.min.js"></script> 
    <script src="Scripts/server.js"></script> 
    <script type="text/javascript"> 

      //Generated proxy 

     $(function() { 
      var connection = $.hubConnection('/signalr/', { useDefaultPath: false }); 
      connection.url = "https://localhost:8080/signalr"; 
      connection.logging = true; 
      connection.connected = true; 
      var chat = connection.createHubProxy('myHub'); 
      chat.on('broadcastMessage', function (name, message) { 
       var encodename = $('<div/>').text(name).html(); 
       var encodemsg = $('<div/>').text(message).html(); 
       $('#discussion').append('<li><strong>' + encodename + '</strong>: &nbsp;&nbsp;' + encodemsg + '</li>'); 
      }); 

      $('#displayname').val(prompt('Enter your name:', '')); 
      $('#message').focus(); 

      try { 
       connection.start({ transport: ['webSockets', 'longPolling'], jsonp: true }).done(function() { 
        $('#btnsendmsg').click(function() { 
         console.log('Now connected, connection ID=' + connection.id); 
         chat.invoke('send', $('#displayname').val(), $(message).val()); 
        }); 
       }).fail(function() { 
        window.onerror = function() { 
         console.log('Could not connect connection failed'); 
        }; 

       }); 
      } 
      catch (ex) { 
       console.log('Error=' + ex); 
      } 
      finally { 
       console.log('Final block '); 
      } 

     }); 

    </script> 
</head> 
<body> 
    <div class="container"> 
     <input type="text" id="message" /> 
     <input type="button" id="btnsendmsg" value="Send" /> 
     <input type="hidden" id="displayname" /> 
     <ul id="discussion"></ul> 
    </div> 



</body> 
</html> 

私はエラーが「https://localhost:8080/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D&callback=jQuery16406560848134472517_1513061441115&_=1513061443867」で得たクライアントアプリケーションを実行します。

この問題を解決する方法。親切に私に助言してください。事前に

おかげ.. Angappan.S

答えて

0

ことで

あなたはEnableJSONPを削除しようとするだろう。

  var hubConfiguration = new HubConfiguration 
      { 
       EnableDetailedErrors = true 
      }; 

とクライアント側。

connection.start({ transport: ['webSockets', 'longPolling'] }) 
+0

同じエラーが発生します。 –

+0

エラーステータスを共有しますか? – lucky

+0

リソースをロードできませんでした:net :: ERR_CONNECTION_REFUSED https:// localhost:8080/signalr/negotiate?clientProtocol = 1.5&connectionData =%5B%7B%22%22%3A%22Myhub%22%7D%5D&_ = 1513067997932 –

関連する問題