2

そのため、SignalR を使い始めたばかりですが、動作させるための最も基本的なセットアップを通過できません。

以下のコントローラーにブレークポイントを配置して、クライアントが接続していることを確認できますが、クライアントは問題の内容に関する有用なメッセージなしですぐに WebException を取得します。この単純な使用法に何か問題があるように見えますか?

public class LiveController : PersistentConnection
{
    public override Task ProcessRequestAsync(HostContext context)
    {
        return base.ProcessRequestAsync(context);
    }

    protected override Task OnConnectedAsync(IRequest request, string connectionId)
    {
        return base.OnConnectedAsync(request, connectionId);
    }

    protected override Task OnReceivedAsync(IRequest request, string connectionId, string data)
    {
        return base.OnReceivedAsync(request, connectionId, data);
    }

    protected override Connection CreateConnection(string connectionId, IEnumerable<string> signals, IEnumerable<string> groups)
    {
        return base.CreateConnection(connectionId, signals, groups);
    }
}

そして、ここにクライアント側があります:

var connection = new Connection("http://192.168.0.102/live/");
connection.Start().ContinueWith(task =>
    {
        dispatcher.BeginInvoke(() =>
        {
            if (task.IsFaulted)
            {
                MessageBox.Show("Connection failed!");
            }
            else
            {
                MessageBox.Show("Success!");
            }
        });
    });

そして例外:

System.Net.WebException occurred
  HResult=-2146233079
  Message=Exception of type 'System.Net.WebException' was thrown.
  Source=System.Windows
  StackTrace:
       at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
       at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
       at Microsoft.AspNet.SignalR.Client.Http.HttpHelper.<>c__DisplayClass2.<GetHttpResponseAsync>b__0(IAsyncResult ar)
  InnerException: System.Net.WebException
       HResult=-2146233079
       Message=Exception of type 'System.Net.WebException' was thrown.
       Source=System.Windows
       StackTrace:
            at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
            at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClasse.<EndGetResponse>b__d(Object sendState)
            at System.Net.Browser.AsyncHelper.<>c__DisplayClass1.<BeginOnUI>b__0(Object sendState)
       InnerException: 
4

1 に答える 1

0

localhost の代わりに * または + を使用してみてくださいhttps://github.com/SignalR/SignalR/issues/684を参照してください

于 2014-04-24T06:11:02.517 に答える