Proprietà dell'estensione di IIS per BITS

Il servizio trasferimento intelligente in background (BITS) usa un'API ISAPI per estendere IIS per supportare i processi di caricamento. Nella tabella seguente sono elencate le proprietà aggiunte da BITS alla metabase IIS per il componente della directory virtuale. BITS usa queste proprietà per determinare come caricare i file. Le proprietà dell'estensione IIS BITS sono ereditabili, ad eccezione di BITSUploadEnabled.

Proprietà Descrizione
Tipo di dati BITSUploadEnabled: Boolean
Indica se i caricamenti BITS sono abilitati nella directory virtuale. Se l'impostazione non è presente o è 0, i caricamenti BITS sono disabilitati.
Questa proprietà è di sola lettura. Per impostare questa proprietà, chiamare il metodo EnableBITSUploads o DisableBITSUploads dell'interfaccia IBIT edizione Standard xtensionSetup.
Tipo di dati BITSSessionTimeout: DWORD
Numero di secondi in cui la connessione viene mantenuta se non viene effettuato alcun progresso durante il caricamento del file; il timer viene reimpostato quando viene eseguito lo stato di avanzamento. BITS chiude la connessione se viene raggiunto il timeout e pulisce i dati associati alla sessione.
L'impostazione di un timeout breve della sessione può essere un problema per i processi di caricamento-risposta perché la risposta viene scaricata solo quando l'utente è connesso e connesso alla rete. È possibile che la sessione si verifichi il timeout prima del download della risposta, nel qual caso la sessione viene annullata e il file di risposta viene eliminato.
Si noti che BITS annulla il processo se viene raggiunto il valore di Criteri di gruppo JobInactivityTimeout (il valore predefinito è 90 giorni), indipendentemente da questa impostazione.
Il valore predefinito è 1.209.600 (14 giorni).
Tipo di dati BITSMaximumUploadSize: String
Numero massimo di byte che possono essere caricati per ogni processo. Specificare il numero massimo di byte come stringa decimale; Il valore stringa deve essere minore o uguale a "1844674407370955". Una stringa vuota equivale a specificare "1844674407370955".
Il valore predefinito è una stringa vuota.
Nota: in IIS 7 il limite di caricamento predefinito è 30 milioni di byte. Il valore della proprietà BITSMaximumUploadSize non può superare il limite di IIS. Per informazioni dettagliate e sulla modifica dell'impostazione predefinita di IIS, vedere KB942074.
Tipo di dati BITSServerNotificationType: DWORD
Specifica come inviare il file di caricamento all'applicazione server. I valori possibili sono: 0, 1 e 2.
Il valore 0 indica che il file non viene inviato all'applicazione server. BITS inserisce il file di caricamento nella directory specificata nel nome remoto (il nome remoto specificato quando è stato aggiunto il file al processo) senza notificare all'applicazione server. Se il file esiste attualmente nella directory di destinazione, viene sostituito con il file di caricamento.
Il valore 1 indica che BITS passa il percorso del file di caricamento all'applicazione server specificata nella proprietà BITSServerNotificationURL . L'applicazione server elabora il file e genera un file di risposta, se necessario. Per impostazione predefinita, BITS rimuove i file di caricamento e risposta dal server dopo che riceve la risposta dall'applicazione server. Per fare in modo che BITS copia il file di caricamento nel percorso specificato dal nome del file remoto nel processo, includere l'intestazione BITS-Copy-File-To-Destination nella risposta. Se non si include l'intestazione e si desidera salvare i file di caricamento e risposta, è necessario copiare i file di caricamento e risposta in un nuovo percorso prima di rispondere.
Il valore 2 indica che BITS passa il file di caricamento nel corpo della richiesta all'applicazione server specificata nella proprietà BITSServerNotificationURL . L'applicazione server elabora il file e restituisce la risposta nel corpo della risposta, se necessario.
Per informazioni dettagliate sulle intestazioni di richiesta e risposta, vedere Protocollo di notifica per le applicazioni server.
L'applicazione server deve fornire una risposta entro cinque minuti. Se l'applicazione server non risponde entro cinque minuti, il processo entra nello stato di errore temporaneo. Quando il ritardo di ripetizione dei tentativi scade, il server BITS invierà un'altra notifica all'applicazione server (l'applicazione server deve essere scritta per gestire le notifiche duplicate).BITS 1.5: il timeout della notifica è di 30 secondi.

Il valore predefinito è 0.
Tipo di dati BITSServerNotificationURL: String
Facoltativo. Contiene l'URL dell'applicazione server in cui BITS pubblica il file di caricamento. È necessario specificare un URL se il valore della proprietà BITSServerNotificationType è 1 o 2. L'URL è limitato a 2.200 caratteri, senza includere il carattere di terminazione Null. L'URL deve essere un URL HTTP; BITS non supporta gli URL di notifica HTTPS.
Se l'URL non è disponibile al momento del caricamento, BITS ritenta il caricamento fino a quando l'URL di notifica non esiste o fino alla scadenza del periodo di ripetizione dei tentativi.
Si noti che se il nome remoto specificato nel processo contiene una stringa di query, la stringa di query viene aggiunta all'URL specificato. Ad esempio, se il nome remoto contiene https://myserver/myvdir/subdir/file.asp?ACCOUNT=86433 e si specifica l'impostazione BITSServerNotificationURL come https://otherserver/myvdir2/bag.asp, l'URL a cui si inseriscono i post BITS https://otherserver/myvdir2/bag.asp?ACCOUNT=86433.
Se l'URL originale è https://myserver/myvdir/file.txt e l'URL di notifica è myasp.asp, BITS usa http//myserver/myvdir/myasp.asp come URL di notifica.
Se la parte percorso e nome file dell'URL contiene caratteri Unicode non comuni alla tabella codici sia nel client che nel server, la conversione dell'URL avrà esito negativo nel server e il processo BITS verrà inserito nello stato di errore. Se la parte server dell'URL contiene caratteri Unicode, è necessario codificare la parte del server usando IDN (Internationalized Domain Names ).
Tipo di dati BITSHostId: String
Impostare questa proprietà se l'installazione del server è una web farm che non usa l'archiviazione condivisa.
Specificare il nome del server o l'indirizzo IP del server a cui riconnettersi dopo l'interruzione del processo di caricamento. In genere, si specifica il nome del server che si sta configurando. L'URL è limitato a 300 caratteri, senza includere il carattere di terminazione Null.
Se non si specifica questa proprietà e il processo di caricamento viene interrotto, è possibile che BITS riprenda il processo in un altro server della farm. Tuttavia, il server precedente contiene ancora il file di caricamento parziale prima dell'interruzione. BITS rimuove il file parziale dopo la scadenza di BITSSessionTimeout .
Nota: non usare la proprietà BITSHostId se SSL viene usato in una web farm che usa bilanciamento carico di rete (NLB) o nomi DNS con più indirizzi IP, a meno che non si includano il nome del cluster e i nomi dei singoli server nel certificato. (Se il nome del server specificato in BITSHostId non corrisponde al nome comune nel certificato, il processo avrà esito negativo. Per Bilanciamento carico di rete impostare invece il parametro Affinity su Single per assicurarsi che il client comunichi con lo stesso server in futuro.
BITSHostIdFallbackTimeoutTipo di dati: DWORD
Numero di secondi in cui il client BITS tenta di riconnettersi al nome del server BITSHostId prima di ripristinare il nome host specificato nel nome file remoto del processo. Il timer inizia quando BITS non è in grado di connettersi al server BITSHostId . Il timer viene reimpostato quando il client si connette correttamente al server.
Si noti che il valore di timeout di stato del processo (vedere IBackgroundCopyJob::SetNoProgressTimeout) deve essere più lungo di questo valore di timeout. In caso contrario, il processo avrà esito negativo prima della scadenza del valore di timeout di fallback.
Impostare questa proprietà solo se si imposta la proprietà BITSHostId .
Il valore predefinito è 86.400 (1 giorno).
BITSAllowOverwritesTipo di dati: Integer
Indica se un file di caricamento può sovrascrivere un file esistente con lo stesso nome. Il file di caricamento sovrascrive il file esistente se BITSAllowOverwrites è 1.
Il valore predefinito è 0.
IIS 6.0: è possibile impostare questa proprietà solo da uno script, non è possibile impostarla usando la pagina delle proprietà dell'estensione BITS nell'interfaccia utente iis.

BITSCleanupUseDefaultTipo di dati: Boolean
Indica se l'attività di pulizia utilizza le pianificazioni predefinite. Per impostazione predefinita, l'attività di pulizia viene eseguita ogni 12 ore.
Impostare su 1 per usare la pianificazione predefinita; in caso contrario, 0 per specificare una pianificazione.
Per specificare una pianificazione, utilizzare le proprietà BITSCleanupCount e BITSCleanupUnits .
L'attività di pulizia pulisce la directory virtuale eliminando i processi che non sono stati modificati entro il periodo di timeout della sessione (vedere BITSSessionTimeout).
Il valore predefinito è 1 usa la pianificazione predefinita.
IIS 6.0: non supportato.
Tipo di dati BITSCleanupCount: Integer
Specifica l'intervallo di attesa tra l'esecuzione dell'attività di pulizia. L'intervallo che è possibile specificare dipende dalle unità. Per i valori di intervallo possibili, vedere la proprietà BITSCleanupUnits .
Questa proprietà viene ignorata se BITSCleanupUseDefault è 0.
IIS 6.0: non supportato.

Tipo di dati BITSCleanupUnits: Integer
Specifica le unità per l'intervallo di pulizia specificato nella proprietà BITSCleanupCount . Questa proprietà viene ignorata se BITSCleanupUseDefault è 0.
I valori possibili sono:
0: le unità sono minuti. I valori possibili sono compresi tra 1 e 60.
1: Le unità sono ore. Si tratta dell'impostazione predefinita. I valori possibili sono compresi tra 1 e 24.
2: Le unità sono giorni. I valori possibili sono compresi tra 1 e 360.

IIS 6.0: non supportato.

BITSNumberOfSessionsLimitTipo di dati: Integer
Limita il numero di sessioni di caricamento che possono esistere simultaneamente per un utente. Se il numero di sessioni per un utente è superiore a questo limite, quando l'attività di pulizia viene eseguita, eliminerà le sessioni più recenti fino a quando il numero di sessioni per l'utente non è inferiore al limite.
Il valore predefinito è 50 sessioni.
IIS 6.0: non supportato.

Tipo di dati BITSSessionLimitEnable: Boolean
Indica se BITS limita il numero di sessioni di caricamento per utente. Se l'impostazione non è presente o è 0, il limite è disabilitato.
Per specificare il limite, impostare la proprietà BITSNumberOfSessionsLimit .
Il valore predefinito è 1.
IIS 6.0: non supportato.

Nell'esempio seguente viene illustrato come impostare le proprietà dell'estensione IIS BITS usando Windows Script Host. Se la directory virtuale punta a una condivisione remota, impostare anche le proprietà UNCUserName e UNCPassword 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 );