none
Erro de Servidor no Aplicativo '/'. - Não há nenhuma impressora instalada. RRS feed

  • Pergunta

  • Boa noite!

    estou desenvolvendo um site aonde existe a opção de impressão de etiqueta e tal, pelo visual studio é tudo mil maravilhas rss, consigo mandar imprimir, funciona certinho, meu problema começa quando faço um publish do site e coloco ele no iis, o site funciona normalmente porem quando tento imprimir me da uma mensagem assim:

    Erro de Servidor no Aplicativo '/'.

    Não há nenhuma impressora instalada.

    Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

    Detalhes da Exceção: System.Drawing.Printing.InvalidPrinterException: Não há nenhuma impressora instalada.

    O engraçado que a impressora existe, e como no servidor que esta o iis tem o visual studio fiz a simulação pelo por ele e no visual studio que tenho no servidor vai tbm..

    alguem ja possou por alguma coisa assim?

    veja meu código que utilizo no momento da impressão:

    if (CadastraImprimiEtiqueta(numeroCodigo.Text, CodigoBarras.Text))
                        {
                            using (SqlConnection cnn = OpenConnectionSQL())
                            {
                                string sql = "Select * from ImpressaoCodigoBarra";
                                SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);

                                cnn.Open();

                                CodigoBarrasDataSet bds = new CodigoBarrasDataSet();
                                codigoBarrasCrystalReport cry = new codigoBarrasCrystalReport();

                                dscmd.Fill(bds, "ImpressaoCodigoBarra");
                                cry.SetDataSource(bds.Tables["ImpressaoCodigoBarra"]);

                                
                                cry.Refresh();
                                cry.PrintOptions.PrinterName =  @"\\192.168.0.39\Smart Label Printer 440";
                                cry.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape; 
                                cry.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.DefaultPaperSize;
                                cry.PrintToPrinter(1, true, 1, int.MaxValue);
                                cry.Dispose();
                            }
                        }

    Desde ja, obrigado!


    Fernando

    terça-feira, 2 de outubro de 2012 23:48

Todas as Respostas

  • Isso ocorre apenas no IE? Testou no Chrome?
    Normalmente isso vem instalado. Tenta instalar aqueles impressores de PDF, como o PDF995 e renderiza novamente.

    André Baltieri
    MTAC – Microsoft Technical Audience Contributor

    Twitter: @andrebaltieri
    Blog: http://andrebaltieri.net

    quarta-feira, 3 de outubro de 2012 16:35
  • Boa tarde André!

    Fizemos o teste também no Firefox e o erro aconteceu em ambos navegadores.. vou fazer esse teste que vc falou..

    obrigado!


    Fernando

    quarta-feira, 3 de outubro de 2012 19:33
  • Depois posta se deu certo!

    André Baltieri
    MTAC – Microsoft Technical Audience Contributor

    Twitter: @andrebaltieri
    Blog: http://andrebaltieri.net

    quarta-feira, 3 de outubro de 2012 20:43
  • Infelizmente não deu certo ainda

    Fernando

    segunda-feira, 8 de outubro de 2012 15:42
  • Fernando, outro detalhe, você está chamando uma impressora da rede: 

    cry.PrintOptions.PrinterName =  @"\\192.168.0.39\Smart Label Printer 440";

    Ela realmente existe? Está mapeada neste computador?

    Abraços,


    André Baltieri
    MTAC – Microsoft Technical Audience Contributor

    Twitter: @andrebaltieri
    Blog: http://andrebaltieri.net

    segunda-feira, 8 de outubro de 2012 15:45
  • Olá André, existe sim.. quando informo este caminho de rede no executar abre a impressora como compartilihada, tudo certinho

    também já fizemos o mapeamento dela..

    a parte mais estranha é que no servidor, se eu rodar a aplicação pelo visual studio a impressão sai normalmente, ai dou um publish e coloco a aplicação no iis que é o servidor aonde rodei a aplicação pelo visual studio ai não consegue mais localizar a impressora.. isso que ta fazendo eu quebrar a cabeça


    Fernando

    segunda-feira, 8 de outubro de 2012 16:00
  • Estou com esse mesmo problema.  Conseguiram uma solução??

    Rodrigo

    sexta-feira, 14 de março de 2014 17:18
  • Pessoal e o seguinte, mais para dar um norte doque realmente achar a solução, pois quando consigo especificar o usuário o problema e resolvido, vamos lá.

    O IIS ou outro serviço do windows não roda com um determinado usuário cadastrado no computador, oque acontece e que as vezes você faz login com um usuário, instala a impressora, imprime e tudo dá certo, quando você utiliza uma aplicação IIS ou um serviço este não acha o mesmo dispositivo pois ele não tem acesso a ele pois o usuário e outro e não este que você fez a instalação, esta constatação verifica-se com maior facilidade tendo dois usuários no windows 10 por exemplo, entra com login de um instala a impressora depois entra com o login do outro e "tchaaa" a impressora não está lá instalada, e isso que acontece quando se tenta acessar um dispositivo que o usuários de serviços ou IIS tentam acessar impressora.

    Solucionei o problema no serviço, onde coloquei que o serviço deve fazer logon com um usuário meu predeterminado e não o default do windows, agora já no IIS tenho que achar onde coloco esse determinado usuário que tem as impressoras instaladas.

    terça-feira, 10 de maio de 2016 13:31
  • Olá Marcos, se entendi direito o problema, as vezes a solução está direto na segurança da impressora.

    caso os usuarios possuam perfils diferentes, você deve configurar que ambos tem os mesmo acesso na impressora clicando na propriedades da impressora \ segurança e definindo que todos podem imprimir...


    Fernando

    terça-feira, 10 de maio de 2016 13:45
  • Resolvi da seguinte forma, acessando o IIS --> Application Pools --> Escolhe sua aplicação com o botão direito e acessa Advanced Settings --> Process Model --> Identity --> Custom account. agora inseri um usuário que tenha acesso tipo um administrador.

    terça-feira, 30 de junho de 2020 19:00