none
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> The request failed with HTTP status 403: RRS feed

  • Pergunta

  • Pessoal, estamos precisando acessar um webservice da nfe que utiliza certificado digital,
    ai fizemos um webservice que faz acesso a este ja com autenticação, proxy, certificado digital, etc...

    quando faço teste e acesso este webservice com  uma aplicação .net, ele devolve a resposta numa boa (localmente), quando publico o webservice ele da o erro descrito no assunto. O problema é que quando utilizo vb6 para fazer a mesma coisa ele da erro.... Ja procurei em diversos foruns e não achei nada. Ja instalei o soap toolkit e adicionei no vb6.

    Segue o código:

    Dim Lobj_web_wcomt As New MSSOAPLib.SoapClient
       Dim Fdes_web_wcomt As String
       Dim Lxml_retorno As String
      
      'Fdes_web_wcomt = "http://dsistemas.sefaz.ba.gov.br/webservices/WCOMT/service.asmx?wsdl"

     
      
       Lxml_retorno = ""
    'Conectando ao webservice do WCOMT
        Lobj_web_wcomt.mssoapinit (Fdes_web_wcomt)

    ''Nesta linha ocorre o erro' --> Lxml_retorno = Lobj_web_wcomt.consultarPassagensPorUF("2008/10/10", "2008/10/05")

    Alguém sabe me dizer o que pode ser este erro: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> The request failed with HTTP status 403:
    ????
    segue a mensagem total do erro:

    Server Error in '/Webapp2005' Application.

    Server was unable to process request. ---> The request failed with HTTP status 403: Forbidden.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> The request failed with HTTP status 403: Forbidden.

    Source Error:

    Line 158:        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/consultarPassagensPorUF", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    Line 159: public string consultarPassagensPorUF(System.DateTime dataInicio, System.DateTime dataFim) {
    Line 160: object[] results = this.Invoke("consultarPassagensPorUF", new object[] {
    Line 161: dataInicio,
    Line 162: dataFim});

    Source File: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\webapp2005\df43038e\5efb7549\App_WebReferences.2bazbr6t.2.cs    Line: 160

    Stack Trace:

    [SoapException: Server was unable to process request. ---> The request failed with HTTP status 403: Forbidden.]
    System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +2074
    System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +205
    WCOMT.Service.consultarPassagensPorUF(DateTime dataInicio, DateTime dataFim) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\webapp2005\df43038e\5efb7549\App_WebReferences.2bazbr6t.2.cs:160
    _Default.Button2_Click(Object sender, EventArgs e) in C:\Inetpub\wwwroot\Webapp2005\Default.aspx.vb:52
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +75
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +97
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4886


    Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433

    quarta-feira, 3 de dezembro de 2008 18:24

Respostas

  • Nosso problema de erro foi resolvido. O problema estava no IIS.

    Para resolve-lo fizemos o seguinte:

     criar um novo pool de aplicações com um usuário administrador da
     máquina, depois  logar no computador com o mesmo usuário que foi definido no pool  e instalar o certificado  digital.
     só assim seu webservice vai enxergar o certificado.

    att
    Lissandra
    • Marcado como Resposta Lissandra segunda-feira, 31 de agosto de 2009 16:26
    segunda-feira, 31 de agosto de 2009 16:26

Todas as Respostas

  • bem.. a url acho q é

     

    http://sistemas.sefaz.ba.gov.br/webservices/WCOMT/service.asmx?wsdl

     

    ao inves de

     

    http://dsistemas.sefaz.ba.gov.br/webservices/WCOMT/service.asmx?wsdl

     

    no mais eu testei aqui... e esse service não existe... deu erro 404 de pagina não encontrada... verifica com o sefaz para ver se o service não foi mudado de endereço

    segunda-feira, 8 de dezembro de 2008 13:46
    Moderador
  • Oi Ruy, mas o problema não é a url, me problema é quando chamo algum método com por exemplo:
     public string consultarPassagensPorUF(System.DateTime dataInicio, System.DateTime dataFim) {

    erro nesta linha: object[] results = this.Invoke("consultarPassagensPorUF", new object[] {
    que quando o soap começa a agir....

    neste webservice eu acesso dois outros da nfe que necessitam de certificado digital.
    são os webservices:
    https://hom.nfe.fazenda.gov.br/nfetransitoestatisticas/nfetransitoestatisticas.asmx
    https://hom.nfe.fazenda.gov.br/nfetransito/nfetransito.asmx
    este webservice que fizemos para acessar os webservices acima descritos, ele seria como se fosse um "filtro" para uma palicação vb6 utilizar as funcionalidades dos mesmos.
    teria alguma idéia?
    pode ser alguma configuração no servidor?
    grata pela atenção

    att
    Lissandra
    terça-feira, 9 de dezembro de 2008 19:51
  • oi... pelo q eu vi vc esta usado ssl (https)

     

    Alias vi q pelo jeito vc nao é a unica com esse problema:

    http://nf-eletronica.com/blog/?p=86

     

    http://forum.imasters.uol.com.br/index.php?s=a5e22db445b2beab992160328450459a&showtopic=263501&st=0&p=984765&#entry984765

     

    Segue uns link de acesso a services seguros para vc dar uma olhada, talves em algum deles tenha a solução

    http://weblogs.asp.net/jan/archive/2003/12/04/41154.aspx

     

    quarta-feira, 10 de dezembro de 2008 12:04
    Moderador
  •  

    Olá Ruy, vc não teria nenhuma idéia sobre configuração do iis que eu possa utilizar para resolver este problema?

    Pois acredito que este erro seja  por que talvez o webservice que estou tentando não esteja "visualizando" meu certificado.

    sexta-feira, 12 de dezembro de 2008 17:11
  •  

    bem vc pode usar o comando "certmgr.msc" para configurar os seu certificados tenta colocar o certificado em "Autoridades de certificação de raiz confiaveis" q acho q é a padrao para todos os usuarios do sistema...

     

    No mais vc pode configurar o usuario do iis para um usuario q encherque a cerificaçao

     

    Segurança de Diretorio/Editar nas propriedades do seu site...

     

    e por fim confirma se nao tem um firewall barrando a porta 443 que é a porta do SSL

     

    ate mais

     

     

    P.S. Por favor... meu nome é com "i" ^^....

    sexta-feira, 12 de dezembro de 2008 18:06
    Moderador
  • Ah... tava fazendo outra coisa aqui... e no caminho eu vi que o proxy do meu webservice ja tem a propriedade

    ClientCertificates

     

    dei uma pesquisada basica e parece q vc pode informar o certificado que vc quer usar por aqui

    http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.clientcertificates.aspx

     

    sábado, 13 de dezembro de 2008 05:39
    Moderador
  • Rui,
    descobri que o problema é no servidor que estamos tentando hospedar o webservice.
    Temos um servidor windows 2003 server com iis 6, para poder usar este webservice e usar o certificado para acessar o webservice nacional precisa de alguma configuração especial dentro do iis?
    Pois testei estes dias o web service dentro do servidor e ele dá o mesmo erro.
    quarta-feira, 14 de janeiro de 2009 18:13
  •  

    Uhm... pra ser sincero ainda nao tive nenhuma experiencia com isso... nao sei se vo ajudar muito....

     

    mas achei essa materia:

     

    Obtaining and Installing Server Certificates (IIS 6.0)

    http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/9a4ae054-da27-4261-a980-4e7b92091eb7.mspx?mfr=true

     

    T+

    quarta-feira, 14 de janeiro de 2009 20:36
    Moderador
  • Oi,
    Rui andei pesquisando sobre o erro e achei um site que falava sobre erros do asp.net, olha só o que ele fala sobre o forbirden:
    Equivalent to HTTP status 403. Forbidden indicates that the server refuses to fulfill the request.
    [ ] '  s
    Lissandra
    quinta-feira, 15 de janeiro de 2009 11:39
  • Uhm... o seu firewall nao ta barrando a porta do https ? sei que é estranho mas pode ser algo assim... ou no firewall ou no proxy ... as veses tem algum filtro no proxy por palavrar que ta sendo bloqueada...

     

    quinta-feira, 15 de janeiro de 2009 12:28
    Moderador
  • Lissandra.... para vc ver... estava aqui acessando uma foto na rede do serviço e apareceu essa mensagem

     

    Forbidden

    You don't have permission to access /walkman/sony/graphics/wm-f5.jpg on this server.

    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


    Apache/2 Server at www.pocketcalculatorshow.com Port 80
     
     
    Aqui eu seu que acontece porcausa do proxy... agora olhando a url... nao tem nada de mais...
     
    http://www.pocketcalculatorshow.com/walkman/sony/graphics/wm-f5.jpg
     
    Mas acontece q a regra do proxy aqui nao me permite acessa essa foto Stick out tongue Qual regra ? Vai saber hehehehe
    quinta-feira, 15 de janeiro de 2009 15:08
    Moderador
  • é estranho Rui, pois eu estou testando na rede interna, então teoricamente este não passaria pelo firewall, tentei acessar um webservice daqui da empresa que tem uma funcinalidade parecida com o que eu quero acessar de fora e acontece o mesmo erro.
    será que tem algum lugar no servidor que possa ver algo mais específico sobre este erro? um cara do Technet, me indicou este post:
    http://stackoverflow.com/questions/399155/http-status-403-forbidden-exception-using-certificate-to-authenticate-asp-net-we

    pelo que já andei pesquisando a pessoa que teve este erro, que é bem parecido com o meu ainda não achou nada, ou ninguém postou a solução...

    []'s
    Lissandra
    quinta-feira, 15 de janeiro de 2009 17:24
  • Ahhaaaa.... esse truque é velho... ok.. por firewal nao.. mas pelo Porxy sim ^^

     

    Coloca na lista de excessoes do Internet Explorer o endereço da url q da erro (na maquina do servidor)

     

    hehehe

    quinta-feira, 15 de janeiro de 2009 18:11
    Moderador
  • Oi Rui,
    também não funciona, acho que pode ser algo ligado a forma de instalação do certificado!

    rsrsr

    []'s
    Lissandra
    quarta-feira, 21 de janeiro de 2009 17:16
  • Olá Lissandra,

    Estou com o mesmo problema que o seu, você já conseguiu resolver?
    Poderia me dizer como?

    Att

    Syra
    segunda-feira, 16 de março de 2009 13:55
  • Lissandra,

    troca a funcionalidade:

    X509Certificate certif = new X509Certificate(certificado.pfx, senha, X509KeyStorageFlags.MachineKeySet);

    Por:

    X509Certificate
    certif = X509Certificate.CreateFromCertFile(certificado.cer);

    Assim funciona dentro do WS2003, pois o CLientCertificate não aceita o do tipo 2, somente o X509Certificate mesmo.

    Att

    Syra

    segunda-feira, 16 de março de 2009 14:19
  • Olá Syra,
    Desculpa por não responder antes...
    o seu estava dando este erro quando vc publicava o código no servidor ou na sua máquina?
    Este problema ocorre quando eu estou publicando.. estou usando o vs2005, mas vou tentar adotar sua solução para ver se funciona!
    :)

    att
    Lissandra
    quarta-feira, 6 de maio de 2009 20:47
  • Oi Lissandra,

    Acho q estou com o mesmo problema que voce, estou tentando acessar relatorios do reporting services situados em outro servidor. Postei neste fórum : http://social.technet.microsoft.com/Forums/pt-BR/sqlreportingservices/thread/1afc6cfb-7d91-4c48-81f6-3f5791d98d40


    O erro é esse:

    The request failed with HTTP status 501: Protocol Not Supported.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Net.WebException: The request failed with HTTP status 501: Protocol Not Supported.

    Source Error:

    Line 45:                 parm[0] = new ReportParameter("paramPeriodoPedido", "1", false);
    Line 46: rvwDiario.ServerReport.ReportServerCredentials = rpCredentials;
    Line 47: rvwDiario.ServerReport.SetParameters(parm);





    Line 48:
    Line 49: parm = new ReportParameter[1];

    Source File: C:\Projetos\Inpart\SourceCode\Reporting Services\PainelSinistrosWeb\PainelSinistrosWeb\Default.aspx.cs    Line: 47

    Stack Trace:

    [WebException: The request failed with HTTP status 501: Protocol Not Supported.]
    System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +431289
    System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +204
    Microsoft.SqlServer.ReportingServices2005.Execution.ReportExecutionService.LoadReport(String Report, String HistoryID) +69
    Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID) +112
    Microsoft.Reporting.WebForms.ServerReport.GetExecutionInfo() +125
    Microsoft.Reporting.WebForms.ServerReport.SetParameters(IEnumerable`1 parameters) +67
    PainelSinistrosWeb._Default.Page_Load(Object sender, EventArgs e) in C:\Projetos\Inpart\SourceCode\Reporting Services\PainelSinistrosWeb\PainelSinistrosWeb\Default.aspx.cs:47
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
    System.Web.UI.Control.OnLoad(EventArgs e) +99
    System.Web.UI.Control.LoadRecursive() +50
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627


    Vc conseguiu alguma solução  pra esse problema ?
    sábado, 23 de maio de 2009 01:17
  • Oi Tanajura, o nosso problema estava em usar o iis6 com windows 2003 server, tem alguma coisa no iss6 que esta barrando nosso site.
    Conseguimos fazer funcionar no windows 2000 com iis5.

    Mas acho que seu erro é diferente, o que vc esta usando?
    • Marcado como Resposta Lissandra segunda-feira, 31 de agosto de 2009 16:26
    • Não Marcado como Resposta Lissandra segunda-feira, 31 de agosto de 2009 16:26
    quarta-feira, 1 de julho de 2009 20:38
  • Nosso problema de erro foi resolvido. O problema estava no IIS.

    Para resolve-lo fizemos o seguinte:

     criar um novo pool de aplicações com um usuário administrador da
     máquina, depois  logar no computador com o mesmo usuário que foi definido no pool  e instalar o certificado  digital.
     só assim seu webservice vai enxergar o certificado.

    att
    Lissandra
    • Marcado como Resposta Lissandra segunda-feira, 31 de agosto de 2009 16:26
    segunda-feira, 31 de agosto de 2009 16:26