大家好我不断得到这个问题,我没有得到任何具体的错误信息。
它是一个扫雷游戏项目。
我可以登录,并在列表框中查看所有登录播放器的列表。工作正常。
服务的方法也可以正常工作。在调试模式下,它将类型为“MsServer300.User”的所需对象返回到客户端的方法,然后执行的下一行现在返回到客户端的方法中,并在那里冻结。 (MsServer300是包含该服务的Project的名称)。 “User”类来自连接到服务的数据库。
有什么想法吗?谢谢!!
这是客户端方法:(错误搜索原因很长)
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;
}
}
我没有看到连接细节,但我总是将Multiple Active Results Sets设置为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;
}
}
}
它解决了!问题是在“用户”对象内部有一个不同的对象,其中包含“用户”列表,因此可能会进入无限循环或其他东西。
当我删除此对象时,用户对象正确传递。