Recomendado: Coleta de erros ASP A coleta de erros do ASP é útil para iniciantes, e talvez os especialistas o esqueçam. ASP ERRO Coleção Microsoft VBScript Idioma*Erro (0x800A03E9)-> Memória insuficiente Microsoft VBScript Language*Erro (0x800A03ea)-> Speech*Erro Microsoft VBScript Language*Language*
As solicitações ASP são inicializadas pelos objetos WAM. O objeto WAM então o envia para o ASP-Runtime. Asp-Runtime responde a ele criando um objeto de página interna.Um objeto WAM é um objeto de encadeamento gratuito. Quando chama uma extensão ISAPI como asp.dll, ele usa threads do modelo MTA alocado pelo pool de threads mantido pelo IIS-Runtime.
Um problema difícil enfrentado ao criar uma extensão ISAPI é como lidar com a simultaneidade e a sincronização do thread causadas por esse pool de threads MTA. Asp-Runtime simplifica o problema alternando cada solicitação ASP para uma única unidade rosqueada (STA) antes de executar o script ASP. O ASP-Runtime gerencia um pool de threads auxiliares independentes do STA (em segundo plano, o ASP realmente faz isso usando um pool de threads com). Os designers da ASP criaram este esquema de pool de threads para fornecer um equilíbrio otimizado entre a concorrência e a utilização de recursos, eliminando a necessidade de os programadores alcançarem a sincronização.
Como o ASP-Runtime muda cada solicitação de um thread MTA para um thread STA. O mecanismo de agendamento ASP-Runtime coloca cada solicitação em uma fila de solicitação central. Os threads STA no pool de threads gerenciados pela ASP monitora a fila e processam as solicitações de uma maneira primeiro a sair. Observe que o tamanho deste pool de threads muda dinamicamente. O ASP-Runtime gera tópicos adicionais durante o pico de comunicação e libera threads quando há menos comunicação.
A mudança para o STA Thread resolve efetivamente o problema de simultaneidade, mas isso também tem um impacto significativo no desempenho. A DLL estendida ISAPI processada em um esquadrão de encadeamento MTA separado fornece tempos de resposta mais rápidos.
O IIS fornece um método para definir o tamanho máximo do pool de threads STA e solicitar a fila. O tamanho do pool de threads é controlado pela chave primária ASPPROCESSORTHRADMAX na metadatabase do IIS. A configuração padrão para esta chave primária é 25 por processo por processador (Comentário: é melhor encontrar a documentação relevante da Microsoft para provar esse número. Algumas pessoas dizem que esse número é 10 por CPU). Ou seja, em um computador de quatro processadores, cada processo que processa o ASP pode ter até 100 threads auxiliares. A menos que os problemas relacionados aos pools de threads de ajuste tenham sido considerados, alterar esse valor de chave deve ser evitado. Observe que você não pode usar o Internet Server Manager para alterar essa configuração. Ele deve ser modificado usando scripts de gerenciamento ou aplicativos VB.
O IIS define uma capacidade máxima para a fila de solicitação ASP. Por padrão, o ASP-Runtime permite que uma fila mantenha até 3000 solicitações (um documento diferente da Microsoft afirma que essa fila pode manter apenas 500 solicitações). Uma vez excedido, a solicitação ASP de entrada posterior será negada e a mensagem de erro será retornada como servidor muito ocupada.
A chave primária ASPPROCESSORTHReadMax e a chave primária asprequestQuestQueuemax podem ser programadas usando objetos de gerenciamento do IIS e ADSI. Por exemplo, em um projeto EXE padrão, consulte a biblioteca do tipo DS ativo e escreva o seguinte código:
Escurecer mywebserver como actived.iads
Definir mywebServer = getOject (iis: // localhost/w3svc)
Mywebserver.put aspprocessorthReadMax, 30
Mywebserver.put asprequestQueuemax, 1500
Mywebserver.setinfo
Aqui está um breve resumo de como o pool de threads ASP funciona no IIS instalado por padrão em um único computador de processador. Este pool de threads possui 25 threads STA Helper disponíveis para cada processador. Quando chega uma solicitação, ele é colocado na fila de solicitação. ASP-Runtime agenda um encadeamento STA inativo do pool de threads, se estiver disponível (observe que esse esquema permite que qualquer encadeamento no pool de threads processe a solicitação). Se não houver threads auxiliares gratuitos, a solicitação será adicionada à fila. Enquanto a fila não atingir a capacidade máxima padrão, todas as solicitações serão processadas.
Aplicação distribuída de programação com Visual Basic 6.0 de Ted Pattison
Compartilhar: Recursos técnicos e métodos de uso de ASP Alguns anos atrás, o único canal da indústria para liberação dinâmica da página inicial foi o modelo CGI (Common GA Teway Interface). Embora as soluções técnicas subsequentes como o ISAPI, o NSAPI e o JDBC tenham melhorado em comparação com o CGI, essas soluções ainda são medidas a partir da realidade técnica da rede corporativa (intranet).