私はsignalrサンプルを追跡し、サーバー上でsignlarを実行しているWebページを取得しました。私は今、この同じサーバーにAndroid(Xamarin)クライアントを接続しようとしていますが、connection.Start()を呼び出すときに未処理の例外が発生しています。Signalr Xamarin Client HubConnection.Start()で未処理のエラーが発生しました
これは、Webページが正常に呼び出すため、私が動作を知っている私のsignalrハブです。
using Microsoft.AspNet.SignalR;
namespace WebApplication.Hubs
{
public class MyHub : Hub
{
public void SendNow(string name, string message)
{
Clients.All.displayMessage(name, message);
}
}
}
このハブに接続しようとしていますが失敗します。
using System.Threading;
using System.Threading.Tasks;
using Android.Widget;
using Microsoft.AspNet.SignalR.Client;
class SignalClient
{
private HubConnection _connection;
private IHubProxy _proxy;
private TextView BoxView;
private string _user;
public SignalClient(string user, TextView outputBox)
{
BoxView = outputBox;
_user = user;
}
public async Task Connect()
{
_connection = new HubConnection("http://websiteurl/chatapp/");
_proxy = _connection.CreateHubProxy("MyHub");
_proxy.On("displayMessage", (string user, string message) =>
{
SynchronizationContext.Current.Post(delegate
{
BoxView.Text += ("{0}: {1}\n", user, message);
}, null);
});
await _connection.Start(); //<- Unhandled Exception
await Send("Connected");
}
public Task Send(string message)
{
return _proxy.Invoke("SendNow", _user, message);
}
}
私は考えることのできるすべてのバリエーションを試しました。基本WebサイトのURLから、私が公開したサブドメインを追加し、両方のバリエーションをsignalr /と最後に追加します。
ここ数日ここでスタックされています...どのようなヘルプや方向を参照していただければ幸いです。
ありがとうございました。
編集1:ここでは、コールスタック
0xFFFFFFFFFFFFFFFF in System.Diagnostics.Debugger.Mono_UnhandledException_internal C#
0x1 in System.Diagnostics.Debugger.Mono_UnhandledException C#
0x20 in object.7424197e-7e83-40fd-ba05-2908dff2d689 C#
0x12 in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw C#
0x6 in System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0 C#
0xC in Android.App.SyncContext. C#
0xE in Java.Lang.Thread.RunnableImplementor.Run C#
0x8 in Java.Lang.IRunnableInvoker.n_Run C#
0x11 in object.7424197e-7e83-40fd-ba05-2908dff2d689 C#
例外のスタックトレースを質問に貼り付けます。スタックトレースを取得しない場合は、 'await _connection.Start()'コールをtry-catchでラップしてください。 – xleon
@xleonこれは私を混乱させます。 [外部コード]で発生したエラー以外の情報は取得できません。これは、URLが間違っていたため、Signalr内でエラーが発生したことを意味します。何が起こったのかについてさらに詳しい情報を得る方法はありますか? –
サーバーはIIS Expressまたはリモートサーバーで動作していますか? – xleon