(服务)程序在从服务获取对象时冻结



大家好,我一直遇到这个问题,我没有收到任何特定的错误消息。

这是一个扫雷游戏项目。

我可以登录,并在列表框中查看所有登录玩家的列表。 这工作正常。

在调试模式下,它将类型为"MsServer300.User"的所需对象返回到客户端的方法,并且要执行的下一行现在返回到客户端的方法中并在那里冻结。 (MsServer300 是包含该服务的项目的名称(。 类"用户"来自连接到服务的数据库。

知道为什么吗? 谢谢!!

这是客户端方法:(由于搜索错误的原因很长(

private void listBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { ///////////
try
{
MsServiceClient proxy = new MsServiceClient(new InstanceContext(Callback));
string s = LbConnectedPlayers.SelectedItem.ToString();
var userDetails = proxy.GetDetails(s);  //<<<here is the error  
if (userDetails == null)
MessageBox.Show("user details is null");
else
LbConnectedPlayers.ItemsSource = userDetails.ToString();
}catch(Exception ex){
MessageBox.Show("error in selectionchange    "+ex.Message);
}
}

这是服务方法:

public User GetDetails(string name)
{
try
{
using (ms_AvishayAndRonen6Entities ctx = new ms_AvishayAndRonen6Entities())
{
//User user = ctx.Users.SingleOrDefault(a => a.UserName == name);
//return user;
User user = (from m in ctx.Users
where m.UserName == name
select m).First();
return user;
}
}
catch (Exception ex)
{
User exUser = new User();
exUser.UserName = ex.Message;
return exUser;
}
}

我没有看到连接详细信息,但我总是将多个活动结果集设置为 True。试试看,看看是否能解决你的问题。下面是一个连接字符串示例:

using System.Data.SqlClient;
namespace MyConnection
{
class Connection
{
public static SqlConnection GetConnection()
{
string connectionString = "Data Source=WhateverYourdataSource;Initial Catalog=EDI;Persist Security Info=True;User ID=YourID;Password=Password.is;Integrated Security=False;MultipleActiveResultSets=True";
SqlConnection connection = new SqlConnection(connectionString);
return connection;
}
}
}

解决了! 问题是在"用户"对象内部有一个包含"用户"列表的不同对象,因此可能进入了无限循环或其他内容。

当我删除此对象时,用户对象正确传递。

最新更新