Проблема с WCF сервисом

В чём проблема не работает метод PreesBut,

Вот интерфейс:

[ServiceContract(CallbackContract = typeof(IServerMethCallback))]
public interface ICheckersService
{
    [OperationContract]
    int Connect(string name);
    [OperationContract]
    void DisConnect(int id);

    [OperationContract(IsOneWay = true)]
    void SendMsg(string msg, int id);

    [OperationContract(IsOneWay = true)]
    void Press(string color, int butId);

}
public interface IServerMethCallback
{
    [OperationContract(IsOneWay = true)]
    void MsgCallback(string msg);
    [OperationContract(IsOneWay = true)]
    void ReturnColor(string msg);

}

Вот класс реализация: SendMsg работает, а PressBut нет

    public int Connect(string name)
    {
        ServerUser user = new ServerUser()
        {
            ID = nextid,
            Name = name,
            operationContext = OperationContext.Current

        };

        nextid++;
        SendMsg(user.Name +  " connected ", 0);
        users.Add(user);
        return user.ID;
    }

    public void DisConnect(int id)
    {
        var user = users.FirstOrDefault(x => x.ID == id);
        if (user != null)
        {
            users.Remove(user);
            SendMsg(user.Name + " left ", 0);
        }
    }


    public void SendMsg(string msg, int id)
    {
        foreach (var item in users)
        {
            string answer = DateTime.Now.ToShortTimeString();

            var user = users.FirstOrDefault(i => i.ID == id);
            if (user != null)
            {
                answer += ": " + user.Name + " ";
            }
            answer += msg;
            item.operationContext.GetCallbackChannel<IServerMethCallback>().MsgCallback(answer);
        }
    }

       


public void Press(string color, int butId)
{
    int[] arrBut = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 };

    foreach (var item in arrBut)
    {
        ServerButton sb = new ServerButton()
        {
            Id = item,
            operationContext = OperationContext.Current
        };
        serverButtons.Add(sb);
    }

    foreach (var item in serverButtons)
    {
        var but = serverButtons.FirstOrDefault(i => i.Id == butId);
        item.operationContext.GetCallbackChannel<IServerMethCallback>().ReturnColor("asdfdfcolor");
    }
}

Вот клиент:

private void tbxMsg_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        if (client != null)
        {
            client.SendMsg(tbxMsg.Text, ID);
            tbxMsg.Text = string.Empty;
        }
    }
}

void OnFigPress(object sender, EventArgs e)
{
    pressedButton = sender as Button;


    int idB = map[pressedButton.Location.Y / cellSize, pressedButton.Location.X / cellSize];
    if (client != null)
    {
        client.Press("somemessg", idB);
    }

}

Вроде всё одно и тоже, но метод PressBut не работает.


Ответы (0 шт):