(Сервис) программа зависает при получении объекта из Сервиса - PullRequest
0 голосов
/ 13 сентября 2018

Привет всем, я продолжаю получать эту проблему, и я не получаю никаких конкретных сообщений об ошибках.

Это игровой проект тральщика.

Я могу войти в систему и увидеть список всех зарегистрированных игроков в списке. это прекрасно работает.

метод службы также работает нормально. в режиме отладки он возвращает требуемый объект типа "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;
        }

    }

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

это было решено! проблема заключалась в том, что внутри объекта «Пользователь» был другой объект, который содержал списки «Пользователь», так что, вероятно, ушел в бесконечный цикл или что-то в этом роде.

Когда я удалил этот объект, объект пользователя прошел правильно.

0 голосов
/ 14 сентября 2018

Я не вижу сведений о соединении, но я всегда устанавливаю для нескольких активных наборов результатов значение 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;
    }

}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...