Почему возвращаемое значение веб-службы равно нулю?
Привет, когда я вызываю свой веб-сервис, он возвращает меня:
<?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, он возвращает ноль! но на веб-сайте, который я разработал, веб-сервис работает правильно и возвращает мне объект!
вот запрос 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 ответа
Я получил ответ, проблема была в том, что мне пришлось изменить свой apppool на локальную систему в iis, и я мог войти в веб-сервис через другие мои приложения
Исключение происходит внутри вашего try
блок. Установите точку останова для отладки кода, чтобы увидеть, что не так.
Может быть hashcode
имеет значение null или имеет длину меньше 10? или же db.Personnels.FirstOrDefault(...)
возвращается null
?
Как примечание, было бы хорошо, если бы вы внедрили некоторую логику регистрации, чтобы вы могли легче устранять неполадки в реальной среде. Log4net - хороший вариант для этого