Lista num web service não carrega

22/10/2012

0

Pessoal, tenho um web service que me deveria carregar uma lista e a lista está vindo vazia. Abaixo o código do web service que trata disso. Nesta linha(if (_integra.Count() == 0)
return "Parametros de integração não foram encontrados.";) dá o erro e cai no catch. Ainda apanho às pencas com isso. Qualquer ajuda é bem-vinda. )brigado.

[WebMethod]
public string Integracao(string _xml)
{
ISession _session = null;

try
{
_session = Helper.GetSession();
_xml = specialCharsReplace(_xml);

XElement _element = XElement.Parse(_xml);
decimal idCadastro = decimal.Parse(_element.Element("Cadastro").Attribute("ID").Value);
decimal idModulo = decimal.Parse(_element.Element("Cadastro").Element("Modulo").Attribute("ID").Value);


ICriteria _criteria = _session.CreateCriteria(typeof(Workmanager.DAO.IntegracaoGED));
_criteria.Add(Expression.Eq("IDMODULO", idModulo));
_criteria.SetProjection(
Projections.Distinct(Projections.ProjectionList()
.Add(Projections.Alias(Projections.Property("IDCATEGORIA"), "IDCATEGORIA"))));

_criteria.SetResultTransformer(
new NHibernate.Transform.AliasToBeanResultTransformer(typeof(Workmanager.DAO.IntegracaoGED)));

List<Workmanager.DAO.IntegracaoGED> _integra = _criteria.List<Workmanager.DAO.IntegracaoGED>().ToList();

if (_integra.Count() == 0)
return "Parametros de integração não foram encontrados.";

List<Campos> _camposGED = PreencheCamposGED(_element, idModulo, _integra[0].IDCATEGORIA);

bool _retorno = iniciaCategoria(idCadastro, idModulo, _integra[0].IDCATEGORIA, _camposGED);


if (_retorno == true)
return "OK";
else
return "RE";


}
catch (TimeoutException ex)
{
Log.registrarLog(this.GetType().FullName, ex.StackTrace, ex.Message);
return "Tempo Esgotado, O serviço demorou muito para obter uma resposta. " + ex.Message;
}
//catch (Workmanager.WMException ex)
//{
// Log.registrarLog(this.GetType().FullName, ex.StackTrace, ex.Message);
// return ex.ExceptionMessage + ex.Message + ex.StackTrace;
//}
catch (Exception ex)
{
Log.registrarLog(this.GetType().FullName, ex.StackTrace, ex.Message);
return ex.Message;
}
finally
{
_session.Close();
_session.Dispose();
}
}
Pjava

Pjava

Responder

Posts

24/10/2012

Robson Alves

Ele cai no catch de TimeOutException ??

Pelo que eu entendi, quando ele vai realizar o Count() ele cai no catch.

A sua fonte de dados é muito grande? Indico um método de leitura mais cadencial armazenando aos poucos as informações em memória!

Ao gerar o _integra, utilize no .ToList() o método Take() e capture uma quantidade menor de dados (caso tenha muitos regitros) assim, você consegue identificar o problema e pensar em algo completo!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar