none
SignalR WebApp.Start以本機的IP(persistent conection,Windows form as SignalR Server) RRS feed

  • 問題

  • 我有兩個.net framework 4.5 專案,一個是Windows form(SignalR Server)、第二個是ASP.NET WebForm(SignalR Clinet).

    我參考了一下程式範例:

    Using SignalR in WinForms and WPF

    https://code.msdn.microsoft.com/windowsdesktop/Using-SignalR-in-WinForms-f1ec847b/view/Discussions

    連線的方式採用persistent conecction.  Windows Form的WebApp.Start接收的url似乎只可以接受localhost.

    我如果用localhost在WebApp.Start,這樣是沒有任何問題。但是我如果設定我的本機電腦的IP到WebStart上,就會出現以下的錯誤:

    這個問題 "target invocation exception"可以被解決,藉由用管理員身分開啟Visual Studio 2017.

    我的困擾是WebApp.Start(url)是否可以用本機電腦的IP?還有其他的裝置是否可以透過WebApp.Start的URL使用SingalR,連結到SignalR Server?

    Javascript of WebForm Client (signalr client)

    		if (bUseLocal) {
    			connection = $.connection("http://localhost:9000/realtime/echo");
    		}
    		else {
    
    			connection = $.connection("http://192.168.1.10:9000/realtime/echo");
    		}

    Windows form singalr server

    const string ServerURI = "http://localhost:9000/";
    
            private void buttonStart_Click(object sender, EventArgs e)
            {
                string szIP = textBoxServerIP.Text;
    			string fullIP = "";
    
                if (szIP == "" && bLocal == false)
                {
                    MessageBox.Show("Please input SignalR Server IP");
                    return;
                }
    
                try
                {
    				if (bLocal == true)
    				{
    					fullIP = ServerURI;
    				}
    				else
    				{
    					fullIP = @"http://" + szIP + @":9000";
    				}
    
    				SignalR = WebApp.Start(fullIP);
    
    				
    				textBoxAll.Text += "Start successfully!IP=" + fullIP + "\r\n";
                }
                catch (Exception ex)
                {
                    textBoxAll.Text += "Start unsccessfully!ex=" + ex.Message + "\r\n";
    
                    Debug.WriteLine("Exception = " + ex.ToString());
                }
            }



    • 已編輯 akira32 2017年6月19日 上午 06:28
    2017年6月19日 上午 02:53

解答