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

时间:2012-08-30 12:24:53

标签: c# asp.net web-services xml-nil

嗨,当我调用我的网络服务它返回我:

    <?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!但是在我开发网络服务的网站上它的工作正确并且返回了我的对象!

这是我用来检索对象的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;
}

2 个答案:

答案 0 :(得分:2)

try块内发生异常。在那里设置断点,调试代码以查看错误。

也许hashcode为空或长度低于10?或db.Personnels.FirstOrDefault(...)正在返回null

作为旁注,如果您实现一些日志逻辑,那么您可以在实时环境中更轻松地进行故障排除。 Log4net是这个

的不错选择

答案 1 :(得分:0)

我得到了答案,问题是我必须将我的应用程序池更改为iis中的本地系统,我可以通过其他应用程序登录Web服务