为什么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;
}
答
一个很好的选择,我得到了answear,问题是,我有我的应用程序池切换到本地系统中的IIS和我可以通过我的其他应用程序登录到Web服务
答
一个例外是您try
块内发生的事情。在那里设置一个断点来调试代码,以查看错误。可能hashcode
为空或长度低于10?或db.Personnels.FirstOrDefault(...)
正在返回null
?
作为一个方面说明,如果您实施一些日志记录逻辑,以便在实时环境中更轻松地进行故障诊断,那将是一件好事。 Log4net是这个
它看起来像你'捕获异常并返回一个包含10个'null对象'的数组。 – bluevector
可能会发生异常?并且你在捕获中返回null –
发布配置 – Erix