所以我遇到了一个奇怪的错误。我有一个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对象?
答案 0 :(得分:0)
您在方法名称之前有[OperationContract]吗?
http://localhost:49676/Service1.svc正在使用浏览器吗?
答案 1 :(得分:0)
好的我解决这个问题的方法是右键单击edmx设计器中的空白区域并选择“添加代码生成的项目”。从那里我选择了ADO.NET自我跟踪实体生成器。现在工作得非常好!