SignalR .Netクライアントで動作するコンソールアプリケーションを取得しようとしていますが、ハブ上でメソッドを呼び出そうとするとエラーが発生します。ここでは、コンソールアプリケーションのための私のコードは次のとおりです。ここでSignalR .NET Client Invokeが例外をスローする
static void Main(string[] args)
{
var connection = new HubConnection("http://localhost/SignalRTest");
var myHub = connection.CreateProxy("SignalRTest.Classes.service");
myHub.On<string>("addMessage", text =>
{
Console.WriteLine(text);
});
connection.Start().ContinueWith(task =>
{
if (task.IsFaulted)
{
Console.WriteLine("There was an error opening the connection: {0}", task.Exception.GetBaseException());
}
else {
Console.WriteLine("Connected.");
}
}).Wait();
myHub.Invoke("Send", "Message from console.").ContinueWith(task => {
if (task.IsFaulted)
{
Console.WriteLine("There was an error calling Send: {0}", task.Exception.GetBaseException());
}
else
{
Console.WriteLine("Send complete.");
}
});
Console.ReadLine();
}
は、ハブサーバーからです:
[HubName("service")]
public class ServiceHub : Hub
{
public void Send(string message)
{
// Call the addMessage method on all clients
Clients.addMessage(message);
}
}
私はそれを書き出しますので、コンソールアプリケーションが正しく接続されていることを前提とし「接続」をしかし、サーバー上でSendメソッドを呼び出そうとすると、次のエラーが発生します。
System.Net.WebException:リモートサーバーからエラーが返されました:(500)内部サーバーエラー。、System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at SignalR.HttpHelper。 <> C_ DisplayClass2.b _0(たIAsyncResultのAR) System.Threading.Tasks.TaskFactory 1.FromAsyncCoreLogic(IAsyncResult iar, Func
で2 ENDMETHOD、TaskCompletionSource`1のTCS)
誰もが私が間違ってやっているものを私に伝えることができますか?ありがとう。
これはうまくいきました。ありがとう!私はこの[HubName( "service")]でハブ名を変更できると思った。それはjavascriptクライアントでは動作しましたが、コンソールクライアントでは動作しませんでした。しかし、それは私がそれを必要としなかったので今は重要ではありません。あなたの助けをもう一度ありがとう。私はそれが近いとは信じられません。 – jmac
@jmacなので、変更しました。var myHub = connection.CreateProxy( "SignalRTest.Classes.service"); var myHub = connection.CreateProxy( "service");または属性[HubName( "service")]を削除しましたか? –
@PrerakKこれはほぼ2年前のことであることに留意してください。問題は 'var myHub = connection.CreateProxy(" service ")'でした。 hubname属性は実際のエンドポイントではなく生成されたjavascriptにのみ影響するため、これは間違っていました。正しい行は 'var myHub = connection.CreateProxy(" ServiceHub ")' –