Jump to content
rtavix

Message "Operação inválida em um objeto fechado" string

Recommended Posts

Amigos, ao compilar minha aplicação me deparei com o seguinte problema:

Como posso solucionar isso?

'ImportComprovante.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\bin\Debug\ImportComprovante.exe'. Symbols loaded. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PrivateAssemblies\Runtime\Microsoft.VisualStudio.Debugger.Runtime.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Oracle.ManagedDataAccess\v4.0_4.122.1.0__89b483f429c47342\Oracle.ManagedDataAccess.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Transactions\v4.0_4.0.0.0__b77a5c561934e089\System.Transactions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\mscorlib.resources.dll'. Module was built without symbols. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\System.Xml.resources.dll'. Module was built without symbols. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.Wrapper.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. The thread 0x4a14 has exited with code 0 (0x0). The thread 0x1b10 has exited with code 0 (0x0). The thread 0x7324 has exited with code 0 (0x0). The thread 0x8334 has exited with code 0 (0x0). 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\System.resources.dll'. Module was built without symbols. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\System.Core.resources.dll'. Module was built without symbols. The thread 0x23f4 has exited with code 0 (0x0). Exception thrown: 'System.InvalidOperationException' in Oracle.ManagedDataAccess.dll The thread 0xadd4 has exited with code 0 (0x0). Exception thrown: 'System.InvalidOperationException' in ImportComprovante.exe Exception thrown: 'System.InvalidOperationException' in ImportComprovante.exe 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Transactions.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\System.Transactions.resources.dll'. Module was built without symbols. System.Transactions Critical: 0 : http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/UnhandledExceção não tratadaImportComprovante.exeSystem.InvalidOperationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089Operação inválida em um objeto fechado em Oracle.ManagedDataAccess.Client.OracleDataReader.IsDBNull(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.GetValue(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.get_Item(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.get_Item(String columnName) em ImportComprovante.LeituraTxt.GetCodProcInter(String CodBarra) na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 220 em ImportComprovante.LeituraTxt.ProcessaArquivo(String FullPathFile, String FileName) na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 192 em ImportComprovante.LeituraTxt.VerificarHorario() na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 52 em System.Threading.ThreadHelper.ThreadStart_Context(Object state) em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) em System.Threading.ThreadHelper.ThreadStart()System.InvalidOperationException: Operação inválida em um objeto fechado em Oracle.ManagedDataAccess.Client.OracleDataReader.IsDBNull(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.GetValue(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.get_Item(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.get_Item(String columnName) em ImportComprovante.LeituraTxt.GetCodProcInter(String CodBarra) na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 220 em ImportComprovante.LeituraTxt.ProcessaArquivo(String FullPathFile, String FileName) na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 192 em ImportComprovante.LeituraTxt.VerificarHorario() na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 52 em System.Threading.ThreadHelper.ThreadStart_Context(Object state) em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) em System.Threading.ThreadHelper.ThreadStart() An unhandled exception of type 'System.InvalidOperationException' occurred in ImportComprovante.exe Operação inválida em um objeto fechado

Share this post


Link to post
Share on other sites
Em 25/05/2018 at 08:55, quintelab disse:

Tem certeza que é quando compila ? 

Parece erro quando executa nessa linha: repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 220

Opa consegui resolver essa parte mas do nada, deu pau no meu log que mostro para o usuário, esta trazendo de forma desordenado, como eu poderia usar a ordenação da linha para quando mostrar o log, vim os logs ordenados:

 

protected void importar_Click(object sender, EventArgs e)
        {

			DataTable Dados = new DataTable();
			//Aqui uso para pegar o indice da linha pelo Data Table
			Dados.Columns.Add("indice", typeof(int));

                        int i = 1;
                        foreach (DataRow linha in Dados.Rows)
                        {
                            linha["indice"] = i;
                            i++;
                        }

				private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int i, Usuario usuarioLogado)
        {
            //usuarioLogado = aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login);
            i = 4;
            i++;
            Action<object> processamento = (dados) =>
            {
                /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/
                NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession());

                foreach (var linha in (IEnumerable<DataRow>)dados)
                {
                  
                   if (processo != null)
                    {
                        //se o processo não for nulo busco todos procinter relacionados a ele
                        List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo);
                        if (listaprocinter.Exists(o => o.Interessado == interessado))
                          
                          	//Aqui eu passo o indice correto, porém não vem em ordem.
                            log.Append("O interessado informado na linha " + (linha["indice"]) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        //log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        // log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        setProcInter(processo, interessado, linha, i);
                    }

                    else
                    {
                        //Novo Processo - 6.3
                        processo = new Processo();
                  }
       }
     }
  }

Como poderia fazer? Só achei estranho porque deu pau nessa parte.

 

Log de Importação:
 

O interessado informado na linha 88 foi adicionado novamente ao processo 0003100-97.2016.8.08.0035 
O interessado informado na linha 148 foi adicionado novamente ao processo 0001818-78.2016.8.08.0017 
O interessado informado na linha 70 foi adicionado novamente ao processo 0001643-45.2017.8.08.0051 
O interessado informado na linha 194 foi adicionado novamente ao processo 0002763-90.2015.8.08.0020 
O interessado informado na linha 145 foi adicionado novamente ao processo 0000237-21.2017.8.08.0008 
O interessado informado na linha 25 foi adicionado novamente ao processo 0002695-18.2012.8.08.0030 
O interessado informado na linha 326 foi adicionado novamente ao processo 0001800-66.2009.8.08.0061 
O interessado informado na linha 376 foi adicionado novamente ao processo 0000646-51.2015.8.08.0045 
O interessado informado na linha 447 foi adicionado novamente ao processo 0003289-74.2017.8.08.0024 
O interessado informado na linha 351 foi adicionado novamente ao processo 0001003-79.2014.8.08.0008 
O interessado informado na linha 567 foi adicionado novamente ao processo 0001608-22.2016.8.08.0051 
O interessado informado na linha 432 foi adicionado novamente ao processo 0000037-54.2017.8.08.0027 
O interessado informado na linha 501 foi adicionado novamente ao processo 0000696-93.2013.8.08.0030 
O interessado informado na linha 551 foi adicionado novamente ao processo 0000403-21.2016.8.08.0030 
O interessado informado na linha 493 foi adicionado novamente ao processo 0001556-71.2016.8.08.0036 
O interessado informado na linha 523 foi adicionado novamente ao processo 0000141-13.2017.8.08.0038 
O interessado informado na linha 375 foi adicionado novamente ao processo 0000403-21.2016.8.08.0030 
O interessado informado na linha 524 foi adicionado novamente ao processo 0003568-52.2016.8.08.0038 

Share this post


Link to post
Share on other sites
5 horas atrás, quintelab disse:

Vai ter que importar System.Linq

 

Antes do seu foreach:
 


dados = dados.OrderBy(dr => dr["indice"]);

 

Quintelab, bom dia!

 

Tentei implementar a sua sugestão dentro do método da thread:

 

private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int i, Usuario usuarioLogado)
        {
            //usuarioLogado = aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login);
            i = 4;
            i++;
            
            Action<object> processamento = (dados) =>
            {
                /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/
                NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession());
                
                foreach (var linha in (IEnumerable<DataRow>)dados)
                {
                    
                    List<Processo> listaProcessoExistente = new List<Processo>();
                    Processo processo = null;
                    Interessado interessado = new Interessado();

                    //busca o processo pelo nº judicial anterior ou atual
                    if (!linha.ItemArray[1].ToString().Equals(""))
                        processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[1].ToString());
                    if (processo == null)
                    {
                        if (!linha.ItemArray[2].ToString().Equals(""))
                            processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[2].ToString());
                    }

                    //busca o interessado por cpf/cnpj
                    if (linha.ItemArray[7].ToString().Length == 14)
                        interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString()));

                    if (linha.ItemArray[7].ToString().Length == 18)
                        interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString()));

                    if (processo != null)
                    {
                        
                        //se o processo não for nulo busco todos procinter relacionados a ele
                        List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo);
                        if (listaprocinter.Exists(o => o.Interessado == interessado))
                            log.Append("O interessado informado na linha " + (linha["indice"]) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        //log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        // log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        setProcInter(processo, interessado, linha, i);
                    }

                    else
                    {
                        //Novo Processo - 6.3
                        processo = new Processo();
  					}
  }

antes do:

 Action<object> processamento = (dados) =>
            {
                /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/
                NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession());
                
                foreach (var linha in (IEnumerable<DataRow>)dados)
                {
   
   				}
            }

Tentei colocar da seguinte forma como sugerido:

 

dados = dados.OrderBy(dr => dr["indice"]);

porém apareceu a seguinte mensagem:

 

Error    1    'object' does not contain a definition for 'OrderBy' and no extension method 'OrderBy' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)    D:\Repositório SVN\SDP\SDPJ\branches\SDPJ-V3.1.0\SDPJ-102\SDPJView\ImportacaoProcessoView\ImportacaoProcesso.aspx.cs    201    25    SDPJView
 

 

Share this post


Link to post
Share on other sites
5 horas atrás, quintelab disse:

Vai ter que importar System.Linq

 

Antes do seu foreach:
 


dados = dados.OrderBy(dr => dr["indice"]);

 

Eu consigo fazer a ordenação no inicio?

Pois por aqui eu pego o indice do DataTable:

if (selecionarArquivo.FileContent != null)
                    {
                        string Excel = AppDomain.CurrentDomain.BaseDirectory + selecionarArquivo.FileName;
                        selecionarArquivo.SaveAs(Excel);
                        Dados = DadosExcel(Excel);

                        Dados.Columns.Add("indice", typeof(int));
                        
                        int i = 1;
                        foreach (DataRow linha in Dados.Rows)
                        {
                           linha["indice"] = i;
                            i++;
                        }
}

 

Share this post


Link to post
Share on other sites
Em 28/05/2018 at 04:48, quintelab disse:

Vai ter que importar System.Linq

 

Antes do seu foreach:
 


dados = dados.OrderBy(dr => dr["indice"]);

 

Quintelab, essa sua sugestão que você postei no caso tenho que adicionar ela antes do foreach do método de importar ou do método da threading?

Share this post


Link to post
Share on other sites
7 horas atrás, quintelab disse:

Esse erro é por que você não adicionou System.Linq na suas namespace. Você precisa adicionar.

Mas eu tenho o using System.Linq adicionado, mesmo assim aparece aquele erro.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By fernandoxwiggy
      Bom dia,
      Alguém já teve que desenvolver o CIOT da empresa E-frete em C#?
       
      Estou buscando exemplos de como fazer usando o web service deles (http://dev.efrete.com.br/Services/LogonService.asmx).
      Eu acredito que preciso chamar o "login" (depois o logout) dentro desse web service, mas ele é uma interface e não estou achando um exemplo de chamar um procedimento em um web service que seja um interface.
       
      Agradeço desde já se alguém puder ajudar.
    • By User386_Denilson
      e aí pessoal, blz?
       
      Vou colocar aqui minha duvida...
      Tenho um projeto em net Core 2.2, usadon mongodb. Tenho uma collection antiga (Pessoas) que o pessoal foi alimentado com muita coisa, e agora estou organizando em pessoa fisica e pessoa juridica.
      Eu faço a busca usando o filtro por id:
      public async Task<PessoaDadosCad> GetPessoaFisica(string id) { var pessoa = await passaiMongoCollection.FindAsync(pessoa => pessoa.Id == id); var data = JsonConvert.SerializeObject(await pessoa.FirstOrDefaultAsync()); PessoaDadosCad simplifiedPerson = JsonConvert.DeserializeObject<PessoaDadosCad>(data.ToString()); return simplifiedPerson; }  
      (pessoa => pessoa.Id == id) ao executar esse comando de busca, a classe vinculada é Pessoa.
      Eu queria ver com vcs se tem como não vincular uma classe no momento da busca??
      Obrigado
    • By rdavisp
      Senhores, boa tarde.

      Pesquisei muito antes de abrir esse post, inclusive aqui, neste fórum. Encontrei dúvidas parecidas as quais tentei adaptar ao meu caso porem sem sucesso.

      A questão é a seguinte:

      Foi desenvolvida uma API em ASP.NET Core 2.0, mas por algumas solicitações do cliente, necessitei migrar para a versão 3.1. Existe uma SPA em Angular 7 que faz a requisição à API através de um método POST passando os parâmetros para a API que retornava um conjunto de dados para aplicação montar a tela. Após a atualização parou de funcionar! Por isso, gostaria de pedir a ajuda de vocês, por que, eu já esgotei as minhas tentativas.

      **No Controller da API está da seguinte maneira:**
       
      1 2 3 4 5 6 7 8 [HttpPost] [Route("api/[controller]")] public IGResult Post(Filtro filtro) {     Console.WriteLine("filtro: " + filtro);     var app = new IgApplication();     return app.getInstrucoes(filtro); }
      **E no angular se encontra dessa forma:**
       
      1 return this._http.post<IgResult>(environment.url + 'api/IG',  this.Filtro, options)

      Ao debugar a API, percebo que os dados do parâmetro **body** chegam nulos. Já tentei das seguintes maneiras abaixo, mudar a implementação do POST na API porém sem sucesso:
       
      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 > //public async Task<IActionResult> Post([FromBody] Filtro pessoa) >         //public HttpResponseMessage Post(Filtro pessoa) >         //public async Task<ActionResult<IList<Todo>>> Create([FromBody]TodoCreateViewModel model) >         //public Task<IActionResult> Post([FromBody] Filtro filtro) >         //public ActionResult<Filtro> Post([FromBody] Filtro filtro) >         //public HttpResponseMessage Post(Filtro filtro) >         //public string Post([FromBody] Filtro filtro) >         //public IActionResult Post([FromBody] Filtro filtro) >         //{ >         //var app = new IgApplication(); >         //return app.getInstrucoes(filtro); >         //return null;// Json(filtro); >         //} >         //public async System.Threading.Tasks.Task<string> Post(HttpRequestMessage request) >         //{ >         //    string body = await request.Content.ReadAsStringAsync(); >         //    return body; >         //}

      Por isso se possível, gostaria muito de contar com a colaboração de vocês.

      Desde já muito obrigado!
    • By rdavisp
      Senhores, bom dia.
      Mais uma vez recorro a ajuda de vocês para algo que não domino ainda. Vamos lá!
      Tenho uma API que quando startada, ela sobe no seguinte endereço: http://localhost:49013/api/values. Percebi que isto é parametrizado no arquivo launchSettings.json, que está assim:
       
      {   "iisSettings": {     "windowsAuthentication": false,     "anonymousAuthentication": true,     "iisExpress": {       "applicationUrl": "http://localhost:49013/",       "sslPort": 0     }   },   "profiles":    {     "IIS Express": {       "commandName": "IISExpress",       "launchBrowser": true,       "launchUrl": "api/values",       "environmentVariables": {         "ASPNETCORE_ENVIRONMENT": "Development"       }     },     "Cliente.IG.WebAPI": {       "commandName": "Project",       "launchBrowser": true,       "launchUrl": "api/values",       "environmentVariables": {         "ASPNETCORE_ENVIRONMENT": "Development"       },       "applicationUrl": "http://localhost:49012/"     }   } }  
      No meu controller da API, tenho seguinte método dentro do namespace:
       
          [Produces("application/json")]     [Route("api/IG")]     [ApiController]     public class IGController : Controller     {         [HttpPost]         public IGResult Post([FromBody] Filtro filtro)         {             var app = new IgApplication();             return app.getInstrucoes(filtro);         }     }  
      O "IgApplication" cria uma instância da classe onde é gerado uma lista que é populada com os valores atribuídos do DAO.
       
      Quando inicializo a aplicação "A" em angular através do localhost (http://localhost:4200/). Dentro do meu arquivo environment.prod.ts tenho a chamada:
       
      export const environment = {   production: true,   url: 'http://localhost:49013/' };  
      Ela passa por esse controller e segue o fluxo e faz o que tem que ser feito. 
      Porém, eis a questão! Eu possuo a aplicação "B", que acessa a mesma API porém possui funcionalidades diferente, por isso, dentro do mesmo controller eu criei uma nova classe e um método:
       
          [Produces("application/json")]     [Route("api/Item")]     public class APIIgItemController : Controller     {         [HttpGet]         public ItensResult Post([FromBody] Itens ValorItem)         {             var app = new CRUDApplication();             return app.GetItens();         }     }  
      Como faço para quando for startar a aplicação "B", ele passe por esse método "ItensResult" ao invés "IGResult", sendo que ambas são executadas pelo localhost:4200? Ou isso eu defino na aplicação angular? Vi que é possível configurar mais de uma "applicationUrl" dentro do json. Devo considerar essa configuração?
       
      Grato a quem puder ajudar!
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.