Mah*_*ari 1 c# android signalr xamarin
我使用 Xamarin for Visual Studio 和 C# 语言编写了一个简单的应用程序。代码是:
HubConnection hubConnection;
IHubProxy chatHubProxy;
async void btnConnect_Click(object sender, EventArgs e)
{
try
{
TextView log = FindViewById<TextView>(Resource.Id.txtLog);
base.OnResume();
hubConnection = new HubConnection("http://192.168.1.3:2010/signalr");
chatHubProxy = hubConnection.CreateHubProxy("MyHub");
chatHubProxy.On<string>("AddMessage", (message) =>
{
TextView text = FindViewById<TextView>(Resource.Id.txtLog);
text.Text = message;
});
var localIP = "192.168.1.104"; //the android device has this IP
await hubConnection.Start();
var srvrMessage = chatHubProxy.Invoke<string>("LoginFromMobile", "mahdi", "p@SsW0Rd",
hubConnection.ConnectionId, localIP);
if (srvrMessage != null)
{
log.Text = srvrMessage.Result;
}
else
log.Text = "can't connect to server";
}
catch (Exception ex)
{
TextView text = FindViewById<TextView>(Resource.Id.txtLog);
text.Text = ex.StackTrace;
}
}
Run Code Online (Sandbox Code Playgroud)
当我单击“连接”按钮时,我会连接到网络中我的电脑上的 SignalR 集线器,并且在调试模式下一切正常。但不幸的是,当我在 RELEASE 模式下编译相同的应用程序时,出现以下错误:
我不明白为什么......请告诉我需要考虑什么才能使应用程序也能在发布模式下正常工作。是不是权限有问题?缺少某些配置或设置?你们的指导真的很有帮助,值得赞赏。
如果某些东西在调试模式下工作但在发布模式下不起作用,那么最有可能的问题是链接器在生成发布二进制文件时未包含您的 dll。
如果在解决方案资源管理器中双击 Android 项目,则可以更改“生成”->“Android 生成”下的设置。
您需要为您的配置选择“发布”,然后选择“链接器”选项卡。如果您选择“不链接”,您的项目引用的所有 dll 将包含在发布二进制文件中。这将导致更大的二进制大小,但将帮助您诊断这是否是问题所在。
您可以从 Xamarin 文档中阅读有关链接器的更多信息: https://developer.xamarin.com/guides/ios/advanced_topics/linker/
| 归档时间: |
|
| 查看次数: |
4969 次 |
| 最近记录: |