Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

brissolare

Erro ao ler Com Object VB6

Recommended Posts

Fala Pessoal, estou com um problema quase solucionado...rs...

 

Explicando melhor:

 

Tenho uma dll feita em VB6 que adiciono no meu projeto web e a mesma faz algumas pesquisas e um outro webservice, mas só funciona essa dll

Quando adiciona a referencia no projeto e utilizo na página tenho que colocar no cabecalho AspCompact="true" e funciona normalmente....até ai tenho o componentes funcionando que é uma maravilha...agora vem o problema

 

Quero implantar o mesmo em uma classe, ou melhor em um webservice para fazer intereção jquery e ai que a dor de cabeça começou.....

 

Quando tento retornar a string pelo webservide, dá o seguinte erro:

 

ActiveX control '8856f961-340a-11d0-a96b-00c04fd705a2' cannot be instantiated because the current thread is not in a single-threaded apartment.

 

Depois de muito pesquisar, muito mesmo...encontrei um link falando sobre a solução, mas tenho que ser sincero...não entendi como aplicar isso...

 

Segue o link, acho que é um assunto muito bom para ser tratado, pois muitos desenvolvedores poderão se deparar com esse tipo de problema

 

http://msdn.microsoft.com/en-us/magazine/cc163544.aspx

http://forums.asp.net/p/1603620/4084852.aspx

 

Abraços

 

Desculpe, coloque na sessão principal do forum, acho que é direcionado a web application...desculpe...

Por favor, mover para Web Application

 

Abraços

 

Fala Quinte ou Ivan...coloquei no lugar errado, tem que ir para Web Applications...desculpa ai...

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o link estiver correto. No primeiro link o que pedem pra fazer, repare no tópico: The Solution

 

É criar a classe AspCompatWebServiceHandler

 

using System;
using System.Web;
using System.Web.UI;
using System.Web.Services.Protocols; 
using System.Web.SessionState; 

public class AspCompatWebServiceHandler : 
   System.Web.UI.Page, IHttpAsyncHandler, IRequiresSessionState
{ 
   protected override void OnInit(EventArgs e) 
   { 
       IHttpHandler handler =
           new WebServiceHandlerFactory ().GetHandler(
               this.Context,
               this.Context.Request.HttpMethod,
               this.Context.Request.FilePath,
               this.Context.Request.PhysicalPath);
       handler.ProcessRequest(this.Context);
       this.Context.ApplicationInstance.CompleteRequest();
   } 

   public IAsyncResult BeginProcessRequest(
       HttpContext context, AsyncCallback cb, object extraData) 
   { 
       return this.AspCompatBeginProcessRequest(
           context, cb, extraData); 
   } 

   public void EndProcessRequest(IAsyncResult result) 
   {
       this.AspCompatEndProcessRequest(result); 
   } 
}

 

E adicionar este código no web.config:

<configuration>
 <system.web>
   <httpHandlers>
     <add verb="*" path="*.asmx"
       type="AspCompatWebServiceHandler, __code" />
   </httpHandlers>
 </system.web>
</configuration>

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o link estiver correto. No primeiro link o que pedem pra fazer, repare no tópico: The Solution

 

É criar a classe AspCompatWebServiceHandler

 

using System;
using System.Web;
using System.Web.UI;
using System.Web.Services.Protocols; 
using System.Web.SessionState; 

public class AspCompatWebServiceHandler : 
   System.Web.UI.Page, IHttpAsyncHandler, IRequiresSessionState
{ 
   protected override void OnInit(EventArgs e) 
   { 
       IHttpHandler handler =
           new WebServiceHandlerFactory ().GetHandler(
               this.Context,
               this.Context.Request.HttpMethod,
               this.Context.Request.FilePath,
               this.Context.Request.PhysicalPath);
       handler.ProcessRequest(this.Context);
       this.Context.ApplicationInstance.CompleteRequest();
   } 

   public IAsyncResult BeginProcessRequest(
       HttpContext context, AsyncCallback cb, object extraData) 
   { 
       return this.AspCompatBeginProcessRequest(
           context, cb, extraData); 
   } 

   public void EndProcessRequest(IAsyncResult result) 
   {
       this.AspCompatEndProcessRequest(result); 
   } 
}

 

E adicionar este código no web.config:

<configuration>
 <system.web>
   <httpHandlers>
     <add verb="*" path="*.asmx"
       type="AspCompatWebServiceHandler, __code" />
   </httpHandlers>
 </system.web>
</configuration>

 

Abraços...

Fala Ivan, quando adiciono isso no web.config dá erro...fala que que referencia está incorreta no cabecalho...e tenho que retirar o registro para poder voltar a abrir o projeto

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.