Procedure consigliate per InfoPath Forms Services

È consigliabile seguire queste procedure consigliate durante la gestione dell'ambiente InfoPath Forms Services.

Limite di 2.000 documenti nelle raccolte documenti di Windows SharePoint Services

Se un modello di modulo viene compilato e inviato più di 2.000 volte in totale, è necessario scrivere codice aggiuntivo nel modello di modulo da inviare a un database mediante un servizio Web oppure creare una funzione di invio personalizzata che inserisce i moduli in più raccolte. Ciò è dovuto a una limitazione della capacità delle raccolte documenti di Microsoft Windows SharePoint Services 3.0, che potrebbe determinare una riduzione delle prestazioni se nella raccolta sono presenti più di 2.000 documenti.

Se si prevede che un modello di modulo possa essere inviato più di 2.000 volte, è consigliabile iniziare a programmare il modulo per l'utilizzo di un metodo di invio alternativo anziché correggere il problema dopo che si è verificato, in particolare se il modello di modulo è disponibile per un sito Web accessibile a tutti.

Utilizzare Visualizzazione modulo quando si configura lo stato della sessione per InfoPath Forms Services

È possibile configurare InfoPath Forms Services per l'utilizzo di Servizio stato sessione (opzione predefinita) o di Visualizzazione modulo per controllare come vengono gestite le sessioni utente. Quando si configura InfoPath Forms Services in modo da utilizzare Servizio stato sessione, tutte le sessioni del browser vengono gestite nel database di SQL Server corrispondente con il provider di servizi condivisi associato all'applicazione Web in cui è ospitato il modello di modulo. In questo scenario viene utilizzata una larghezza di banda limitata, ma si verifica un impatto cumulativo sulle prestazioni del computer che esegue SQL Server. Se si utilizza Visualizzazione modulo, le sessioni vengono gestite nel browser del client e tutti i dati della sessione vengono inclusi in ogni postback nel server, per un massimo di 40 KB di dati della sessione. In questo modo si utilizza una larghezza di banda maggiore rispetto a quando viene utilizzato lo stato della sessione, tuttavia non si incide sulle prestazioni del computer che esegue SQL Server. Quando i dati della sessione raggiungono la dimensione di 40 KB, la sessione passa automaticamente alla gestione dello stato della sessione.

È consigliabile utilizzare Visualizzazione modulo in ambienti con piccoli gruppi di utenti, in quanto riduce l'impatto su SQL Server. Se nella distribuzione di InfoPath Forms Services saranno presenti molti utenti, soprattutto se i dati della sessione sono inferiori a 40 KB per molti modelli di modulo utilizzati frequentemente, lo stato della sessione è probabilmente la scelta migliore. Se si utilizza Visualizzazione modulo e si teme un impatto negativo sulle prestazioni della rete, è possibile monitorare la larghezza di banda utilizzata dalle sessioni del browser di 40 KB o inferiori.

Esecuzione di SQL Server sconsigliata su un server Web front-end

Se si esegue SQL Server su un server Web front-end Office SharePoint Server (ad esempio, in una distribuzione di valutazione su singolo server), la cache ASP.NET rilascerà la memoria di sistema a soglie inferiori rispetto a SQL Server, determinando un possibile carenza di memoria in InfoPath Forms Services.

ASP.NET utilizza una strategia di assegnazione dell'utilizzo massimo di memoria da parte di Internet Information Services (IIS) basata sul valore minore tra 800 MB o il 60% della memoria RAM fisica disponibile. Queste impostazioni possono essere configurate in Gestione IIS. ASP.NET controlla inoltre l'utilizzo della memoria RAM fisica, non solo per il processo W3wp.exe, ma per l'intero sistema. Quando viene eseguito il commit dell'80% della memoria fisica sul server, ASP.NET inizia a eliminare periodicamente il 5% della cache meno recente e con priorità più bassa. Quando è stato eseguito il commit dell'85% della memoria fisica, ASP.NET elimina periodicamente il 50% della cache. Al 90% e oltre, ASP.NET taglia in modo cospicuo la cache e imposta un limite basso per il numero massimo di voci, che resta attivo fino a quando ASP.NET non riequilibra l'utilizzo eccessivo di memoria sul server e innalza la soglia.

La soglia di utilizzo della memoria per SQL Server è superiore per impostazione predefinita rispetto alla cache di ASP.NET. In questo scenario, SQL Server non rilascia mai memoria poiché la cache di ASP.NET rilascia la memoria prima che la soglia di SQL Server venga raggiunta. Questa situazione può portare a una condizione in cui la velocità effettiva di InfoPath Forms Services si riduce, con un conseguente impatto sulle prestazioni.

Per ridurre questo problema, è consigliabile configurare manualmente i limiti di memoria di SQL Server quando SQL Server è installato nello stesso computer in cui è presente Office SharePoint Server. Per ulteriori informazioni sulla regolazione delle impostazioni di memoria di SQL Server, vedere l'articolo relativo alle opzioni per la memoria del server Server Memory Options (informazioni in lingua inglese) (https://msdn.microsoft.com/library/default.asp?url=/library/it-it/adminsql/ad\_config\_9zfy.asp) (informazioni in lingua inglese) nel sito Web Microsoft (informazioni in lingua inglese).

Procedure consigliate per i moduli accessibili in modo anonimo

Se si distribuisce un modulo in una posizione esposta a utenti anonimi, ad esempio una raccolta documenti pubblica di SharePoint o un modulo incorporato in una pagina Web in Internet, verificare l'integrità del modulo. È necessario eseguire alcuni passaggi aggiuntivi per attenuare il rischio di utilizzo improprio del modulo, exploit Denial of Service (DoS) e potenziali problemi di prestazioni.

  • Assicurarsi che i modelli di modulo non siano accessibili a script o ad altri processi automatizzati. A questo scopo è possibile imporre agli utenti che inviano un modello di modulo l'immissione di un codice di identificazione, ad esempio una breve stringa alfanumerica visualizzata in un'immagine, che non possa essere letto da uno script o un processo automatizzato.

  • I modelli di modulo che contengono informazioni riservate come informazioni di autenticazione, nomi di server o di database o codice proprietario non devono mai essere esposti agli utenti anonimi.

  • I modelli di modulo che contengono una connessione dati per l'invio tramite posta elettronica non devono essere distribuiti nei server che consentono l'accesso anonimo, poiché i messaggi di posta elettronica generati quando il modulo viene inviato riporteranno la dicitura "inviato da utente anonimo" nell'oggetto.

  • Valutare e verificare attentamente i modelli di modulo che contengono codice o funzionalità che possono richiamare processi in un server per garantire che la protezione non possa essere compromessa se si garantisce l'accesso al modello di modulo da parte di utenti anonimi.

  • Per impedire agli utenti di inviare più copie di un modulo, può essere utile includere codice per rilevare l'indirizzo IP di ogni utente che invia un modulo e impedire invii duplicati da parte dello stesso indirizzo IP.

  • Proteggere l'integrità dei modelli di modulo attivando la protezione per impedire che il modello di modulo venga modificato.