none
Problemas na captura de SQLException entre classes do framework 1.1 e 2.0 RRS feed

  • Pergunta

  • Olá,

    Estou desenvolvendo uma classe - framework 2.0 - que faz alguns acessos ao SQL Server (2005) através de um método de leitura. Neste método, há uma rotina de tratamento de erro (Try..Catch) que captura quaisquer exceptions geradas e as envia para uma outra classe - framework 1.1 - que trata as exceptions recebidas, retornando erros amigáveis para o usuário.

    Ocorre que sempre que é gerada uma exception do tipo SQLException, ocorre o seguinte erro:

    System.Runtime.Serialization.SerializationException was unhandled by user code
      Message="Type is not resolved for member System.Collections.ListDictionaryInternal, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089."
      Source="mscorlib"
      StackTrace:
           at System.EnterpriseServices.IRemoteDispatch.RemoteDispatchNotAutoDone(String s)
           at System.EnterpriseServices.RemoteServicedComponentProxy.Invoke(IMessage reqMsg)
           at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
           at ExpressGeneralNET.ExceptionHandler.Handle(Exception objExcept, String strStackTrace, String strXmlIn, String strSqlString, String& strXmlErr)
           at ExpressIntegracao20.ADM.ContratosCadNacionalGera(String strCliente, String strContrato, String strDtInicial, String strDtFinal, String& strXmlErr)
           at ExpressIntegracao20.ADM.ContratosCadNacionalGera(String strCliente, String strContrato, String& strXmlErr)
           at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
           at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
           at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

    Este erro persiste mesmo após eu ter instalado os SPs para ambos os frameworks (1.1 e 2.0).

    Alguém poderia me ajudar com este problema?

    Atenciosamente,

    José Eduardo

    terça-feira, 23 de janeiro de 2007 14:13

Todas as Respostas

  • Vou chutar, porque não tenho certeza de que esta é a resposta correta, ok?

     

    Acho que o problema acontece porque alguns tipos de dados no Framework 2 usam generics, e portanto não são compatíveis com o Framework 1.

    O que você pode fazer é serializar a exception dentro do código do Framework 2, e joga-la numa exception comum, como detalhes, daí mandar essa exception para o framework 1.

     

    De novo: É só um chute, porque não vi o código todo.

     

     

    terça-feira, 23 de janeiro de 2007 20:57
  • Obrigado Matheus!
    Não consegui resolver o problema, mas como trata-se de uma contingência, até que migremos os componentes do FMK 1.1 para o 2.0, contornamos a situação migrando somente o método utilizado para o novo componente.
    De qualquer forma, obrigado novamente pela ajuda...
    []s,
    sexta-feira, 26 de janeiro de 2007 15:41