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

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
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 -
-
-
-
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 -
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
-
-
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.
-
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
-
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.