Ish*_*mas 2 c# asp.net xamarin.android signalr xamarin
(**) 我创建了一个 ASP.NET Web 服务器,托管 SignalR 集线器。我跟着这个 教程。有用。然后我创建了一个 Xamarin.Android 客户端(*)。问题是我无法连接到服务器。我想,由于主机地址中的“localhost”,我无法连接。例外是相当大的。
如果我的怀疑是正确的,我该如何解决?如何使本地主机看起来像普通服务器?
(*) - 我也尝试过使用 Xamarin.Forms。
(**) - 请看问题底部的“编辑”。
这是我的方法:
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
Button button = FindViewById<Button>(Resource.Id.MyButton);
button.Click += async delegate
{
button.Text = string.Format("{0} clicks!", count++);
var hubConnection = new HubConnection("http://localhost:64642");
var chatHubProxy = hubConnection.CreateHubProxy("ChatHub");
try
{
// Start the connection
await hubConnection.Start();
// Invoke the 'UpdateNick' method on the server
await chatHubProxy.Invoke("Send", new object[] { "TheMessage", "JohnDoe" });
}
catch(Exception ex)
{
}
};
}
Run Code Online (Sandbox Code Playgroud)
{System.Net.WebException:错误:ConnectFailure(连接被拒绝)---> System.Net.Sockets.SocketException:在System.Net.Sockets.Socket.Connect(System.Net.EndPoint remoteEP)[0x000cb]中拒绝连接/Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/System/System.Net.Sockets/Socket.cs:1313 在 System.Net.WebConnection.Connect(System.Net.HttpWebRequest 请求) [0x0019b] in /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/System/System.Net/WebConnection.cs:195 ---内部异常堆栈跟踪结束---在系统.Net.HttpWebRequest.EndGetResponse (System.IAsyncResult asyncResult) [0x0005e] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/System/System.Net/HttpWebRequest.cs:1023 在系统.Threading.Tasks.TaskFactory
1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func2[T,TResult] endFunction, System.Action1[T] endAction, System.Threading.Tasks.Task1[TResult] promise, System.Boolean requiresSynchronization) [0x00014] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib /system/threading/Tasks/FutureFactory.cs:550--- 从之前抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/3511/77cb8568/source/mono/ mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task 任务)[0x00047] 在 /Users/builder/data/ Lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task 任务)[ 0x0002e] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(System.Threading.Tasks.Task 任务)[0x0000b] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/ system/runtime/compilerservices/TaskAwaiter.cs:128 在 System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono /mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:535 在 System.Net.Http.HttpClientHandler+c__async0.MoveNext () [0x003ce] 在 /Users/builder/data/lanes/3511/77cb8568 /source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs:379任务 task) [0x0000b] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 在 System.Runtime.CompilerServices。 ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult()[0x00000] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs :535 在 System.Net.Http.HttpClientHandler+c__async0.MoveNext () [0x003ce] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/System.Net.Http/System.Net .Http/HttpClientHandler.cs:379任务 task) [0x0000b] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 在 System.Runtime.CompilerServices。 ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult()[0x00000] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs :535 在 System.Net.Http.HttpClientHandler+c__async0.MoveNext () [0x003ce] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/System.Net.Http/System.Net .Http/HttpClientHandler.cs:379GetResult () [0x00000] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:535 在 System.Net.Http。 HttpClientHandler+c__async0.MoveNext() [0x003ce] 在/Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs:379GetResult () [0x00000] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:535 在 System.Net.Http。 HttpClientHandler+c__async0.MoveNext() [0x003ce] 在/Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs:379
--- 从之前抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/3511/77cb8568/source/mono/ mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task 任务)[0x00047] 在 /Users/builder/data/ Lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task 任务)[ 0x0002e] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(System.Threading.Tasks.Task 任务)[0x0000b] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/ system/runtime/compilerservices/TaskAwaiter.cs:128 在 System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono /mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:535 在 System.Net.Http.HttpClient+c__async0.MoveNext () [0x000a9] 在 /Users/builder/data/lanes/3511/77cb8568 /source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:276任务 task) [0x0000b] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 在 System.Runtime.CompilerServices。 ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult()[0x00000] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs :535 在 System.Net.Http.HttpClient+c__async0.MoveNext () [0x000a9] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/System.Net.Http/System.Net .Http/HttpClient.cs:276任务 task) [0x0000b] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 在 System.Runtime.CompilerServices。 ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult()[0x00000] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs :535 在 System.Net.Http.HttpClient+c__async0.MoveNext () [0x000a9] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/System.Net.Http/System.Net .Http/HttpClient.cs:276GetResult () [0x00000] 在 System.Net.Http 的 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:535 中。 HttpClient+c__async0.MoveNext() [0x000a9] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:276GetResult () [0x00000] 在 System.Net.Http 的 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:535 中。 HttpClient+c__async0.MoveNext() [0x000a9] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:276
--- 从之前抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/3511/77cb8568/source/mono/ mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task 任务)[0x00047] 在 /Users/builder/data/ Lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task 任务)[ 0x0002e] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(System.Threading.Tasks.Task 任务)[0x0000b] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/ system/runtime/compilerservices/TaskAwaiter.cs:128 at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/ mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:113 在 AndroidApp.MainActivity+<>c__DisplayClass1_0+<b__0>d.MoveNext () [0x000a5] 在 C:\Data\Projects\SinglaRSamples\AndroidApp\AndroidApp\MainActivity.cs:36 }任务 task) [0x0000b] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 在 System.Runtime.CompilerServices。 TaskAwaiter.GetResult () [0x00000] in /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:113 at AndroidApp.MainActivity+< >c__DisplayClass1_0+<b__0>d.MoveNext () [0x000a5] 在 C:\Data\Projects\SinglaRSamples\AndroidApp\AndroidApp\MainActivity.cs:36 }任务 task) [0x0000b] 在 /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 在 System.Runtime.CompilerServices。 TaskAwaiter.GetResult () [0x00000] in /Users/builder/data/lanes/3511/77cb8568/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:113 at AndroidApp.MainActivity+< >c__DisplayClass1_0+<b__0>d.MoveNext () [0x000a5] 在 C:\Data\Projects\SinglaRSamples\AndroidApp\AndroidApp\MainActivity.cs:36 }c__DisplayClass1_0+<b__0>d.MoveNext () [0x000a5] 在 C:\Data\Projects\SinglaRSamples\AndroidApp\AndroidApp\MainActivity.cs:36 }c__DisplayClass1_0+<b__0>d.MoveNext () [0x000a5] 在 C:\Data\Projects\SinglaRSamples\AndroidApp\AndroidApp\MainActivity.cs:36 }
编辑:
正如梅森和杰森建议的那样,我可能必须使用正确的 IP 而不是“本地主机”。Android Emulator 看到的实际 localhost 的 IP。我正在努力寻找那个 IP,它在 Android 设置中的某个地方。任何帮助都会很棒!
您可以使用http://10.0.2.2:64642从 Google SDK 模拟器访问在您的 PC 主机上运行的 ASP.NET 站点。如果它无法到达服务器,那么您可能需要配置 Windows 防火墙以允许传入的 HTTP/HTTPS 连接。
| 归档时间: |
|
| 查看次数: |
3570 次 |
| 最近记录: |