Рекомендации по службам InfoPath Forms Services

При исправлении средой InfoPath Forms Services рекомендуется придерживаться следующих советов.

Ограничение документов 2000 в библиотеках документов служб Windows SharePoint

Если шаблон формы будет заполнен и отправлен больше 2000 раз, то следует либо записать код в шаблоне формы, чтобы отправить его в базу данных с использованием веб-службы, или создать функцию отправки, которая помещает формы в несколько библиотек. Это связано с ограничением по объему библиотек документов Windows SharePoint Services 3.0, в которых наблюдается снижение производительности при наличии в библиотеке более 2000 документов.

Если предполагается, что шаблон формы может быть отправлен более 2000 раз, то проще начать с программирования формы для использования альтернативного способа отправки, чем пытаться решать данную проблему, когда она возникнет, особенно если шаблон формы используется на общедоступном веб-сайте.

Использование представления формы при настройке состояния сеанса для служб форм InfoPath

Чтобы определить способ управления сеансами пользователя, в InfoPath Forms Services можно настроить использование службы состояния сеанса (параметр по умолчанию) или представления формы (состояние представления ASP.NET). При настройке в InfoPath Forms Services использования службы состояния сеанса все сеансы браузера будут обрабатываться в базе данных SQL Server, которая соответствует поставщику общих служб, связанному с веб-приложением, на котором находится шаблон формы. В этом сценарии используется небольшая полоса пропускания сети, однако при этом оказывается влияние на общую производительность компьютера, на котором запущен SQL Server. При использовании представления формы сеансы обрабатываются в клиентском браузере, и все данные сеанса включены в каждый повторный вызов на сервер, до 40 КБ данных сеанса. При этом занимается большая полоса пропускания, чем при использовании состояния сеанса, однако этот способ не оказывает влияния на компьютер, на котором запущен SQL Server. Как только объем данных сеанса достигает 40 КБ, автоматически включается управление состоянием сеанса.

Представление формы рекомендуется использовать в средах с небольшими группами пользователей, так как при этом снижается влияние на SQL Server. Если развертывание InfoPath Forms Services планируется для большого числа пользователей, в особенности, когда объем данных сеанса не превышает 40 КБ для большого числа шаблонов форм с высоким режимом использования, рекомендуется использовать состояние сеанса. При использовании представление формы можно отслеживать полосу пропускания, занимаемую сеансами браузера с объемом до 40 КБ и ниже, если требуется предупредить отрицательное влияние на производительность сети.

Запуск сервера SQL на интерфейсном веб-сервере не рекомендуется

В случае запуска сервера SQL Office SharePoint Server на интерфейсном веб-сервере (например, в развертывании для оценки одного сервера), кэш ASP.NET будет освобождать системную память при более низком пороговом значении, чем сервер SQL, что может привести к недостатку памяти для InfoPath Forms Services.

В ASP.NET применяется стратегия ориентации на максимальное использование памяти служб IIS меньшего из двух показателей — либо 800 МБ, либо 60% доступной физической ОЗУ. Эти параметры настраиваются в диспетчере служб IIS. ASP.NET также контролирует использование физического ОЗУ, и не только для процесса w3wp.exe, а для всей системы. Когда будет использовано 80% физической памяти на сервере, ASP.NET начнет периодически сбрасывать наиболее старые и менее приоритетные данные 5% кэша. Когда будет использовано 85% физической памяти, ASP.NET периодически сбрасывать 50% кэша. При уровне 90% или более ASP.NET активно урезает кэш и задает пониженное ограничение максимального числа записей, которое действует до тех пор, пока ASP.NET не ослабит интенсивность использования памяти на сервере и поднимет пороговое значение.

Пороговое значение использования памяти для сервера SQL по умолчанию выше, чем для кэша ASP.NET. В данном сценарии сервер SQL никогда не освобождает память, поскольку кэш ASP.NET уже освободит память, прежде чем будет достигнуто пороговое значение для сервера SQL. Это решение может привести к состоянию, когда уменьшается пропускная способность InfoPath Forms Services с последующим влиянием на производительность.

Чтобы решить эту проблему, необходимо вручную настроить ограничения памяти для сервера SQL, если сервер SQL устанавливается на том же компьютере, что и Office SharePoint Server. Для получения дополнительных сведений по настройке параметров памяти сервера SQL см. статью Параметры памяти сервера (https://msdn.microsoft.com/ru-ru/library/aa196734.aspx) (на английском языке) на веб-сайте корпорации Майкрософт .

Советы для форм, доступных для анонимных пользователей

При развертывании формы в месте, где она становится доступной для анонимных пользователей, например в общедоступной библиотеке документов SharePoint или на встроенной форме на веб-странице в Интернете, проверьте целостность формы. Существует несколько дополнительных действий, которые необходимо предпринять, чтобы уменьшить риск неправильного использования формы, атак типа " отказ в обслуживании", а также возможных проблем, связанных с производительностью.

  • Убедитесь, что к шаблонам форм нет доступа со стороны сценариев или других автоматизированных или не выполняемых человеком процессов. Одним из способов достижения этого является требование ввода проверочного кода пользователями, отправляющими шаблон формы. Такой код может представлять собой небольшой набор букв и цифр на картинке, которые не может быть считан сценарием или автоматизированным процессом.

  • Шаблоны форм, которые содержат конфиденциальные данные, например данные проверки подлинности, имена серверов или баз данных или собственный код не должны быть доступны анонимным пользователям.

  • Шаблоны формы, содержащие данные соединения для отправки электронной почты, не должны передаваться на серверы, доступные для анонимных пользователей, поскольку в сообщениях электронной почты, создаваемых при отправке формы, в строке темы будет отображаться надпись "отправлено анонимным пользователем".

  • Шаблоны форм, включающие код или функции, которые могут вызывать процессы на сервере, должны быть тщательно проверены и протестированы, чтобы предотвратить нарушения безопасности из-за предоставления доступа к шаблону анонимным пользователям.

  • Чтобы помешать пользователям отправлять несколько копий формы, попробуйте включить код, отслеживающий IP-адрес каждого пользователя, который отправляет форму, и предотвращающий дублированную отправку с одного IP-адреса.

  • Чтобы защитить целостность шаблонов форм, включите защиту для предотвращения изменения шаблона формы.