为什么Web服务返回值为空?

问题描述:

喜当我调用我的web服务,它返回我:为什么Web服务返回值为空?

<?xml version="1.0" encoding="UTF-8"?> 
    -<ArrayOfAnyType xmlns="http://localhost:5669/TAWebService.asmx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <anyType xsi:nil="true"/> 
<anyType xsi:nil="true"/> 
<anyType xsi:nil="true"/> 
<anyType xsi:nil="true"/> 
<anyType xsi:nil="true"/> 
<anyType xsi:nil="true"/> 
<anyType xsi:nil="true"/> 
<anyType xsi:nil="true"/> 
<anyType xsi:nil="true"/> 
<anyType xsi:nil="true"/> 
</ArrayOfAnyType> 

任何想法可能是错误的?当我从我的winapp调用它时,它返回null!但是在我开发web服务的网站中,它工作正确,并返回对象!

这里是linqtosql查询我使用的检索对象:

[WebMethod] 
public Object[] getPersonnel(string hashCode) 
{ 
    Personnel personnel = new Personnel(); 
    Object[] objReturn = new Object[10]; 
    try 
    { 
     db = new TimeAttendanceDataBaseDataContext(); 
     personnel = db.Personnels.FirstOrDefault(x => x.HashRecord == hashCode.Substring(0,10)); 
     objReturn[0] = personnel.ID; 
     objReturn[1] = personnel.UserName; 
     objReturn[2] = personnel.Password; 
     objReturn[3] = personnel.FirstName; 
     objReturn[4] = personnel.LastName; 
     objReturn[5] = personnel.Mobile; 
     objReturn[6] = personnel.Email; 
     objReturn[7] = personnel.HashRecord; 
     objReturn[8] = personnel.AccessLevel; 
     objReturn[9] = personnel.PersonnelCode; 
    } 
    catch 
    { 
     objReturn[0] = null; 
     objReturn[1] = null; 
     objReturn[2] = null; 
     objReturn[3] = null; 
     objReturn[4] = null; 
     objReturn[5] = null; 
     objReturn[6] = null; 
     objReturn[7] = null; 
     objReturn[8] = null; 
     objReturn[9] = null; 

    } 
    return objReturn; 
} 
+0

它看起来像你'捕获异常并返回一个包含10个'null对象'的数组。 – bluevector

+3

可能会发生异常?并且你在捕获中返回null –

+0

发布配置 – Erix

一个很好的选择,我得到了answear,问题是,我有我的应用程序池切换到本地系统中的IIS和我可以通过我的其他应用程序登录到Web服务

一个例外是您try块内发生的事情。在那里设置一个断点来调试代码,以查看错误。可能hashcode为空或长度低于10?或db.Personnels.FirstOrDefault(...)正在返回null

作为一个方面说明,如果您实施一些日志记录逻辑,以便在实时环境中更轻松地进行故障诊断,那将是一件好事。 Log4net是这个