WP7 EndPointNotFound исключение для транспортировки объекта через WCF? - PullRequest
0 голосов
/ 11 февраля 2011

Итак, у меня странная ошибка.У меня есть приложение WP7, в котором есть ссылка на службу WCF, которую я написал.WCF имеет модель сущности для базы данных.

По сути, я хочу, чтобы, когда пользователь входит в систему по телефону, соответствующая запись SystemUser возвращалась из службы WCF.SystemUser - это таблица в базе данных.

На стороне службы WCF у меня есть следующее:

public SystemUser UserLogin(string emailAddress, string userPassword)
    {
        Regex emailRegex = new Regex(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
        if (emailRegex.IsMatch(emailAddress) && !string.IsNullOrEmpty(userPassword))
        {
            using (var context = new DBEntities())
            {
                var users = context.SystemUsers.Where(su => su.EmailAddress.ToLower().Trim() == emailAddress.ToLower().Trim());

                // there should only be one user in here!
                if (users.Count() <= 0)
                {
                    return null;
                }
                else
                {
                    return users.FirstOrDefault();
                }
            }
        }

        return null;
    }

Ничего слишком хардкорного.И когда телефон вызывает этот метод, он выдает исключение EndPointNotFoundException при попытке вернуть объект SystemUser.«Не было прослушивания конечной точки на http://localhost:49676/Service1.svc, которая могла бы принять сообщение. Это часто вызвано неправильным адресом или действием SOAP. См. InnerException, если имеется, для получения дополнительной информации».Внутреннее исключение: "{" Удаленный сервер возвратил ошибку: NotFound. "}"

Сгенерированный код, имеющий эту проблему, находится здесь:

   public ServiceProxy.UserLoginResponse EndUserLogin(System.IAsyncResult result) {
        object[] _args = new object[0];
        PhoneApp.ServiceProxy.UserLoginResponse _result = ((PhoneApp.ServiceProxy.UserLoginResponse)(base.EndInvoke("UserLogin", _args, result)));
        return _result;
    }

По сути, это выглядит такне может транспортировать объект?Есть идеи?Я думал, что мне не нужно использовать объекты POCO?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2011

Хорошо, что я сделал, чтобы решить эту проблему, щелкнув правой кнопкой мыши пустое место в конструкторе edmx и выбрав «Добавить сгенерированный код».Оттуда я выбрал ADO.NET Self-Tracking Entity Generator.Работает прекрасно сейчас!

0 голосов
/ 12 февраля 2011

У вас есть [OperationContract] перед именем метода?

http://localhost:49676/Service1.svc работает в браузере?

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