A renderização da fonte falha quando o código é executado no IIS 7.0

0

Eu tenho um site ASP herdado com o objeto COM em execução no IIS 7.0 no Windows Server 2008. Isso geralmente funciona muito bem, mas acabei encontrando um problema bastante estranho ultimamente para o qual não consigo encontrar uma solução.

Há uma página que chama um objeto COM personalizado (código VB6, sim, eu sei) que chama um objeto COM de renderização gráfica de terceiros. Após o teste, descobrimos que esse código funciona bem no Windows 2003 e no IIS 6.0, mas não no Windows Server 2008 e no IIS 7.0. O problema é que o mecanismo de renderização de terceiros não usa a fonte True Type (personalizada instalada) adequada e parece usar uma fonte padrão.

Quando o código da página ASP é executado como um arquivo VBScript em uma conta de Administrador, a renderização usa a fonte correta. Então você pode pensar que é um problema de permissão. No entanto, quando eu executo o VBScript sob a mesma conta que o site e o pool de aplicativos do IIS está sendo executado, a fonte correta também é usada. Portanto, somente quando o código é executado no IIS 7.0, ele não é renderizado com a fonte correta. Se ele for executado a partir de uma caixa CMD na mesma conta que o IIS está usando, ele será processado corretamente.

A conta que o IIS está usando é uma conta personalizada criada (não NETWORK SERVICE) com muito poucos privilégios, porém o suficiente para funcionar. O site foi executado há anos também usando objetos COM de terceiros. É a primeira vez que uma questão como essa surgiu.

Achei que as permissões na fonte podem ser um problema, embora isso não explicasse por que funcionaria fora do IIS. Para certificar-se de que não faz parte do problema, dei ao grupo Todos permissões de leitura na fonte específica. Isso não resolveu o problema.

Considerando todos os itens acima, acho que minha pergunta se resume ao que o IIS está fazendo de maneira diferente, que pode fazer com que o código não use a fonte correta. Eu sei que o IIS 7.x está colocando automaticamente a conta do pool de aplicativos no grupo IIS_IUSRS antes de iniciar o pool de aplicativos. Mas eu já adicionei manualmente a conta a esse grupo, assim também quando executo o VBScript a partir de uma caixa CMD nessa conta, a conta também faz parte do grupo IIS_IUSRS. Então, isso deve ser o mesmo.

Estou ficando sem ideias para resolver isso. Quaisquer ideias, sugestões ou sugestões são bem-vindas.

    
por Marco Miltenburg 20.09.2011 / 11:43

2 respostas

0

Eu consegui resolver esse problema há algumas semanas e vou responder minha própria pergunta para referência futura, tendo acabado de receber um e-mail de um usuário superusuário com problemas semelhantes.

O problema parece ser muito específico para o Windows Server 2008, possivelmente devido a um bug nesta versão do Windows. A fonte era uma fonte personalizada desconhecida comprada de uma pequena empresa de criação de fontes. Já havíamos solicitado uma nova versão da fonte e já tentamos carregá-la em alguns editores de fontes e salvá-la novamente, mas sem sucesso.

Eventualmente, um pequeno editor de fontes freeware chamado Type Light do CR8 Software Solutions conseguiu corrigir o problema. Carregar a fonte neste editor e salvá-la novamente corrigiu o problema no Windows Server 2008. Desde então, podemos usar a fonte como qualquer outra fonte.

    
por 29.02.2012 / 09:43
0

Eu sei que você encontrou uma solução, mas eu tive um problema muito parecido com o seu (executar um aplicativo por meio de uma tarefa planejada usaria a fonte padrão, mas ao executar localmente, encontraria a fonte personalizada que instalei) solução; No Server 2008, há um problema em que as fontes personalizadas não são registradas imediatamente após a instalação para usuários não interativos, enquanto usuários regulares (ou seja, quando executam em um usuário realmente conectado à máquina) têm a fonte registrada imediatamente.

A solução que funcionou para mim foi simplesmente reiniciar a máquina em que a fonte estava instalada e a fonte começou a funcionar nas contas não interativas, pois quando o computador é ligado, ele é registrado corretamente. Parece que a instalação da fonte tem um bug onde ela não registra a fonte corretamente para usuários não interativos até uma reinicialização.

    
por 07.03.2017 / 00:08