Partilhar via


Propriedades de extensão do IIS do BITS

O BITS (Serviço de Transferência Inteligente em Segundo Plano) usa uma ISAPI para estender o IIS para oferecer suporte a carregar trabalhos. A tabela a seguir lista as propriedades que o BITS adiciona à metabase do IIS para o componente de diretório virtual. O BITS usa essas propriedades para determinar como carregar os arquivos. As propriedades da extensão IIS do BITS são herdáveis, exceto para BITSUploadEnabled.

Propriedade Descrição
BITSUploadEnabledTipo de dados: Boolean
Indica se os carregamentos do BITS estão habilitados no diretório virtual. Se a configuração não estiver presente ou for 0, os carregamentos do BITS serão desativados.
Esta é uma propriedade somente leitura. Para definir essa propriedade, chame o EnableBITSUploads ou DisableBITSUploads método da interfaceIBITSExtensionSetup do.
BITSSessionTimeoutTipo de dados: DWORD
Número de segundos em que a conexão é mantida se não houver progresso no upload do arquivo; O temporizador é redefinido quando o progresso é feito. O BITS fecha a conexão se o tempo limite for atingido e limpa os dados associados à sessão.
Definir um tempo limite de sessão curto pode ser um problema para trabalhos de upload-resposta, porque a resposta só é baixada quando o usuário está conectado e conectado à rede. É possível que a sessão atinja o tempo limite antes de a resposta ser baixada, caso em que a sessão é cancelada e o arquivo de resposta é excluído.
Observe que o BITS cancela o trabalho se o valor JobInactivityTimeout Diretiva de Grupo (o padrão é 90 dias) for atingido, independentemente dessa configuração.
O valor padrão é 1.209.600 (14 dias).
BITSMaximumUploadTamanhoTipo de dados: String
Número máximo de bytes que podem ser carregados por trabalho. Especifique o número máximo de bytes como uma cadeia decimal; O valor da cadeia de caracteres deve ser menor ou igual a "1844674407370955". Uma cadeia de caracteres vazia é o mesmo que especificar "1844674407370955".
O valor padrão é uma cadeia de caracteres vazia.
Nota: No IIS 7, o limite de carregamento padrão é de 30 milhões de bytes. O valor da propriedade BITSMaximumUploadSize não pode exceder o limite do IIS. Para obter detalhes e informações sobre como alterar o padrão do IIS, consulte KB942074.
BITSServerNotificationTypeTipo de dados: DWORD
Especifica como enviar o arquivo de carregamento para o aplicativo de servidor. Os valores possíveis são: 0, 1 e 2.
Um valor 0 significa que o arquivo não é enviado para o aplicativo de servidor. O BITS coloca o arquivo de carregamento no diretório especificado no nome remoto (o nome remoto especificado quando você adicionou o arquivo ao trabalho) sem notificar o aplicativo de servidor. Se o arquivo existir atualmente no diretório de destino, ele será substituído pelo arquivo de upload.
Um valor de 1 significa que o BITS passa o local do arquivo de carregamento para o aplicativo de servidor especificado na propriedade BITSServerNotificationURL. O aplicativo de servidor processa o arquivo e gera um arquivo de resposta, se necessário. Por padrão, o BITS remove os arquivos de upload e resposta do servidor depois que ele recebe a resposta do aplicativo do servidor. Para que o BITS copie o arquivo de upload para o local especificado pelo nome do arquivo remoto no trabalho, inclua o cabeçalho BITS-Copy-File-To-Destination na resposta. Se você não incluir o cabeçalho e quiser salvar os arquivos de upload e resposta, copie os arquivos de upload e resposta para um novo local antes de responder.
Um valor de 2 significa que o BITS passa o arquivo de carregamento no corpo da solicitação para o aplicativo de servidor especificado na propriedade BITSServerNotificationURL. O aplicativo de servidor processa o arquivo e passa de volta a resposta no corpo da resposta, se necessário.
Para obter detalhes sobre os cabeçalhos de solicitação e resposta, consulte Notification Protocol for Server Applications.
O aplicativo de servidor deve fornecer uma resposta dentro de cinco minutos. Se o aplicativo de servidor não responder dentro de cinco minutos, o trabalho entrará no estado de erro transitório. Quando o atraso de repetição expirar, o servidor BITS enviará outra notificação para o aplicativo de servidor (o aplicativo de servidor deve ser gravado para lidar com notificações duplicadas).BITS 1.5: O tempo limite de notificação é de 30 segundos.

O valor padrão é 0.
BITSServerNotificationURLTipo de dados: String
Opcional. Contém a URL do aplicativo de servidor no qual o BITS posta o arquivo de carregamento. Você deve especificar uma URL se o valor da propriedade BITSServerNotificationType for 1 ou 2. A URL é limitada a 2.200 caracteres, não incluindo o terminador nulo. O URL deve ser um URL HTTP; O BITS não suporta URLs de notificação HTTPS.
Se o URL não estiver disponível no momento do carregamento, o BITS repetirá o carregamento até que o URL de notificação exista ou até que o período de repetição expire.
Observe que, se o nome remoto especificado no trabalho contiver uma cadeia de caracteres de consulta, a cadeia de caracteres de consulta será acrescentada à URL especificada. Por exemplo, se o nome remoto contiver https://myserver/myvdir/subdir/file.asp?ACCOUNT=86433 e você especificar a configuração BITSServerNotificationURL como https://otherserver/myvdir2/bag.asp, a URL para a qual as postagens do BITS serão https://otherserver/myvdir2/bag.asp?ACCOUNT=86433.
Se o URL original estiver https://myserver/myvdir/file.txt e o URL de notificação estiver myasp.asp, o BITS usará http//myserver/myvdir/myasp.asp como URL de notificação.
Se a parte do caminho e do nome do arquivo da URL contiver caracteres Unicode não comuns à página de código no cliente e no servidor, a conversão de URL falhará no servidor e o trabalho BITS será colocado no estado de erro. Se a parte do servidor da URL contiver caracteres Unicode, você deverá codificar a parte do servidor usando IDN (Internationalized Domain Names (IDN).
BITSHostIdTipo de dados: String
Defina essa propriedade se a instalação do servidor for uma web farm que não usa armazenamento compartilhado.
Especifique o nome do servidor ou o endereço IP do servidor ao qual se reconectar após a interrupção do processo de carregamento. Normalmente, você especifica o nome do servidor que está configurando. O URL é limitado a 300 caracteres, não incluindo o terminador nulo.
Se você não especificar essa propriedade e o processo de carregamento for interrompido, é possível que o BITS retome o trabalho em outro servidor no farm. No entanto, o servidor anterior ainda contém o arquivo de upload parcial de antes da interrupção. O BITS remove o arquivo parcial após o BITSSessionTimeout expirar.
Observação: Não use a propriedade BITSHostId se o SSL for usado em uma web farm que usa NLB (Balanceamento de Carga de Rede) ou nomes DNS com vários endereços IP, a menos que você inclua o nome do cluster e nomes de servidores individuais no certificado. (Se o nome do servidor especificado em BITSHostId não corresponder ao nome comum no certificado, o trabalho falhará.) Em vez disso, para NLB, defina o parâmetro Affinity como Single para garantir que o cliente se comunique com o mesmo servidor no futuro.
BITSHostIdFallbackTimeoutTipo de dados: DWORD
Número de segundos que o cliente BITS tenta se reconectar ao BITSHostId nome do servidor antes de reverter para o nome do host especificado no nome do arquivo remoto do trabalho. O temporizador começa quando o BITS não consegue se conectar ao servidor BITSHostId. O temporizador é redefinido quando o cliente se conecta com êxito ao servidor.
Observe que o valor sem tempo limite de progresso do trabalho (consulte IBackgroundCopyJob::SetNoProgressTimeout) deve ser maior do que esse valor de tempo limite. Caso contrário, o trabalho falhará antes que o valor de tempo limite de fallback expire.
Defina essa propriedade somente se você definir a propriedade BITSHostId.
O valor padrão é 86.400 (1 dia).
BITSAllowOverwritesTipo de dados: Integer
Indica se um arquivo de carregamento pode substituir um arquivo existente com o mesmo nome. O arquivo de upload substitui o arquivo existente se BITSAllowOverwrites for 1.
O valor padrão é 0.
IIS 6.0: Você pode definir essa propriedade somente a partir de um script, não é possível defini-la usando a página de propriedades da extensão BITS na interface do usuário do IIS.

BITSCleanupUseDefaultTipo de dados: Boolean
Indica se a tarefa de limpeza usa as agendas padrão. Por padrão, a tarefa de limpeza é executada a cada 12 horas.
Defina como 1 para usar a agenda padrão; caso contrário, 0 para especificar uma agenda.
Para especificar uma agenda, use o BITSCleanupCount e BITSCleanupUnits propriedades.
A tarefa de limpeza limpa o diretório virtual excluindo trabalhos que não foram modificados dentro do período de tempo limite da sessão (consulte BITSSessionTimeout).
O padrão é 1 use o agendamento padrão.
IIS 6.0: Não suportado.
BITSCleanupCountTipo de dados: Integer
Especifica o intervalo a aguardar entre a execução da tarefa de limpeza. O intervalo que você pode especificar depende das unidades. Para obter possíveis valores de intervalo, consulte a propriedade BITSCleanupUnits.
Esta propriedade será ignorada se BITSCleanupUseDefault for 0.
IIS 6.0: Não suportado.

BITSCleanupUnitsTipo de dados: Integer
Especifica as unidades para o intervalo de limpeza especificado na propriedade BITSCleanupCount. Esta propriedade será ignorada se BITSCleanupUseDefault for 0.
Os valores possíveis são:
0: As unidades são minutos. Os valores possíveis são de 1 a 60.
1: As unidades são horas. Este é o padrão. Os valores possíveis são de 1 a 24.
2: As unidades são dias. Os valores possíveis são de 1 a 360.

IIS 6.0: Não suportado.

BITSNumberOfSessionsLimitTipo de dados: Integer
Limita o número de sessões de carregamento que podem existir simultaneamente para um usuário. Se o número de sessões para um usuário for maior do que esse limite, quando a tarefa de limpeza for executada, ela excluirá as sessões mais recentes até que o número de sessões para o usuário esteja abaixo do limite.
O padrão é 50 sessões.
IIS 6.0: Não suportado.

BITSSessionLimitEnableTipo de dados: Boolean
Indica se o BITS limita o número de sessões de carregamento por usuário. Se a configuração não estiver presente ou for 0, o limite será desativado.
Para especificar o limite, defina a propriedade BITSNumberOfSessionsLimit.
O padrão é 1.
IIS 6.0: Não suportado.

O exemplo a seguir mostra como definir as propriedades da extensão IIS do BITS usando o Windows Script Host. Se o diretório virtual apontar para um compartilhamento remoto, defina também o UNCUserName e UNCPassword propriedades do IIS.

if (WScript.Arguments.length < 2)
{
    WScript.Echo("Usage: bitsvdir virtual_directory local_directory");
    WScript.Quit(1);
}

VirtualDirectoryName = WScript.Arguments(0);
LocalDirectoryName = WScript.Arguments(1);

ServerObj = GetObject("IIS://LocalHost/W3SVC/1/ROOT");
VirtualDir = ServerObj.Create("IIsWebVirtualDir", VirtualDirectoryName );

VirtualDir.Path = LocalDirectoryName;
VirtualDir.AppIsolated = 0;
VirtualDir.AccessScript = true;
VirtualDir.AccessRead = false;
VirtualDir.AccessWrite = false;
VirtualDir.SetInfo();

// Set BITS specific IIS configuration settings
VirtualDir.EnableBITSUploads();
VirtualDir.BITSMaximumUploadSize = "4294967296";
VirtualDir.SetInfo();

WScript.Echo( "Created virtual directory " + VirtualDirectoryName + 
              " with a local directory of " + LocalDirectoryName );
WScript.Quit( 0 );