none
Consumir Web Service da Anvisa com dll (tlb) feita em csharp para ser utilizada em vb6 RRS feed

  • Pergunta

  • Boa Noite amigos,

    Criei uma dll em c# para ser lida em vb6 usando com, para consumir web service, o vb6 enxerga os métodos tudo certinho porém quando chamo o método, me retorna o seguinte erro:

    System.InvalidOperationException: Não foi possível localizar o elemento de ponto de extremidade padrão que referencia o contrato 'sngpcService.sngpcSoap' na seção de configuração do ServiceModel cliente. Isso pode ter ocorrido devido à falta de um arquivo de configuração para o seu aplicativo ou porque nenhum elemento de ponto de extremidade correspondendo a este contrato pôde ser encontrado no elemento cliente.
       em System.ServiceModel.Description.ConfigLoader.LoadChannelBehaviors(ServiceEndpoint serviceEndpoint, String configurationName)
       em System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName, Configuration configuration)
       em System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName)
       em System.ServiceModel.ChannelFactory.InitializeEndpoint(String configurationName, EndpointAddress address)
       em System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress)
       em System.ServiceModel.EndpointTrait`1.CreateSimplexFactory()
       em System.ServiceModel.ClientBase`1.CreateChannelFactoryRef(EndpointTrait`1 endpointTrait)
       em System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef()
       em System.ServiceModel.ClientBase`1..ctor()
       em TesteSNGPC.sngpcService.sngpcSoapClient..ctor() na C:\NSC\Projetos CSHARP\TesteSNGPC\TesteSNGPC\Service References\sngpcService\Reference.cs:linha 271
       em TesteSNGPC.Mensagem.ValidaUsuario(String EdEmail, String EdSenha) na C:\NSC\Projetos CSHARP\TesteSNGPC\TesteSNGPC\Mensagem.cs:linha 18

    meu projeto em c# é composto por duas classes uma IMensagem e outro Mensagem

    IMensagem:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    using System.Runtime.InteropServices;

    namespace TesteSNGPC
    {
        [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]  
        public interface IMensagem
        {
            [ComVisible(true)]// isto faz o método ficar visível para o vb6
            string ValidaUsuario(string EdEmail, string EdSenha);
        }
    }

    Mensagem:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;

    namespace TesteSNGPC
    {
            [ClassInterface(ClassInterfaceType.None)]
            public class Mensagem : IMensagem
            {
                [ComVisible(true)] // isto faz o método ficar visível para o vb6
                public string ValidaUsuario(string EdEmail, string EdSenha)
                {
                    string comp;
                    try
                    {
                        sngpcService.sngpcSoapClient wssngpc = new sngpcService.sngpcSoapClient();
                        comp = wssngpc.ValidarUsuario(EdEmail, EdSenha);
                        return comp;
                    }

                    catch (Exception e)
                    {
                        return e.ToString();
                    }
                }

            }
    }

    o mais engraçado é que a alguns meses atrás isso funcionava perfeitamente, mas depois que a Anvisa mudou os métodos para o SNGPC2.0, não está mais funcionando.

    Fico no aguardo, agradeço desde já.

    Atenciosamente,

    Alexandre Ligabue.

    sexta-feira, 12 de abril de 2013 01:12

Todas as Respostas

  • Olá, amigos, consegui executar corretamente o método, o problema estava em como adicionar o web service no projeto, o correto é Adicionar Referência da Web, clicando em avançado, qualquer dúvida estou disposta a ajudar.

    Atenciosamente,

    Alexandre Ligabue.

    sexta-feira, 12 de abril de 2013 02:01