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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar