通过WCF传输实体的WP7 EndPointNotFound异常?

时间:2011-02-11 15:59:19

标签: wcf windows-phone-7 entity

所以我遇到了一个奇怪的错误。我有一个WP7应用程序,它有一个我写的WCF服务的服务引用。 WCF具有数据库的实体模型。

基本上我想要发生的是,当用户登录电话时,从WCF服务返回匹配的SystemUser条目。 SystemUser是db。中的表。

在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;
    }

没有什么太硬核了。当手机调用该方法时,它会在尝试返回SystemUser对象时抛出EndPointNotFoundException。 “没有端点侦听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 :(得分:0)

您在方法名称之前有[OperationContract]吗?

http://localhost:49676/Service1.svc正在使用浏览器吗?

答案 1 :(得分:0)

好的我解决这个问题的方法是右键单击edmx设计器中的空白区域并选择“添加代码生成的项目”。从那里我选择了ADO.NET自我跟踪实体生成器。现在工作得非常好!