Есть анонимный веб сервис(разработанный мной). Спустя примерно пол часа после последнего обращения к нему новый запрос обрабатывается 30+ секунд а последующие запросы обрабатываются менее одной секунды. 

Такое ощущение, что веб сервис переходит в спящий режим 

 

Подскажите пожалуйста, что и как настроить, чтобы веб сервисы реагировали быстро на каждый запрос

Нравится

2 комментария
Лучший ответ

Да, приложение при простое засыпает.

В iis в ApplicationPools есть пул вашего приложения в AdvancedSettings есть настройка Idle Time-out(minutes) в ней укажите 0 и приложение не будет засыпать.

Да, приложение при простое засыпает.

В iis в ApplicationPools есть пул вашего приложения в AdvancedSettings есть настройка Idle Time-out(minutes) в ней укажите 0 и приложение не будет засыпать.

Полозюков Евгений Петрович, Благодарю

Показать все комментарии

Здравсвуйте!  Возникла следующая ошибка:

Изображение удалено.

Версия приложения 7.13.2. На сервере под пользоваетлем с правами администратора, права на папку с приложение розданы. В пуле приложения в  поле "Удостоверение" указал текщего пользователя (у которого есть права администратора). Не могу понять, в чем здесь причина, может кто-нибудь подскажет. СПасибо.

 

Нравится

4 комментария
Лучший ответ

В SQL нужно дать пользователю права на БД: Безопасность -> Имена для входа. Я так решал это проблему у себя на среде.

В SQL нужно дать пользователю права на БД: Безопасность -> Имена для входа. Я так решал это проблему у себя на среде.

Терещенко Алексей,

Спасибо за ответ, но у пользователя с помощью которого я подключаюсь к бд, в табличке "Членство в роли базы данных: BPM-IIC", стоят чекбоксы в db_owner и public, для нужной БД.

Такое сообщение говорит, что пользователь, под которым запущен пул или который явно прописан в ConnectionStrings.config, не может установить подключение с SQL-сервером. Скорее всего, дело даже не в пользователе, а доступ заблокирован на уровне настроек SQL-сервера или firewall.

Зверев Александр,

Спасибо за ответ, да дело было именно в брандмауэре.



.

Показать все комментарии

Хотите получить бесплатный сертификат для вашего сайта bpm'online?
Без регистрации! Без SMS! Бесплатно и на долго :wink:
Тогда данная заметка будет Вам полезна: https://kovalyshyn.pp.ua/1273.html

Нравится

Поделиться

2 комментария

К сожалению Google объявил о его блокировки в браузере Chrome и бесплатных больше не осталось.

Алексей, Вы что-то перепутали. Chrome, как и Mozilla, являются спонсорами данного проекта: https://letsencrypt.org/sponsors/

Можете скинуть ссылку, где Вы такое прочитали?

Показать все комментарии

Если у Вас установлен bpm’online on-site и Вы хотите использовать webitel с WebRTC, то без наличия HTTPS это сделать у Вас не получиться. Я уже описывал процесс перевода webitel на использование сертификатов безопастности, а сегодня поговорим о bpm’online.

В данной статье, описан процесс перевода on-site bpm'online версии 7.8 на использование HTTPS с помощью бесплатного сертификата от StartCom, что бы с WebRTC проблем не было и мы могли совершать звонки в браузере: http://kovalyshyn.pp.ua/1226.html

Нравится

Поделиться

2 комментария

Спасибо, полезная информация

Так как StarCom больше не надежны, предлагаю альтернативное решение - https://kovalyshyn.pp.ua/1273.html

Показать все комментарии

Что нужно знать при установки BPMonline на своем сервере (On-Site).

Предустановленные компоненты

Для начала у вас уже должно быть установлено:

  1. MSSQL Server: 2008, 2008R2, 2012
  2. Redis: http://redis.io/download
  3. Microsoft .NET Framework 4.0: сайт Microsoft
  4. IIS : 6.0, 7.0, 7.5

Настройка IIS

Теперь более подробно на настройке IIS, на примере версии 7.5.
Открываем:
Control Panel\All Control Panel Items\Programs and Features.
Далее:
Turn Windows features on or off.

Или просто запустите в командной строке:

OptionalFeatures

Минимальный список компонентов IIS:

  • Internet Information Services
    • Web Management Compatibility
      • IIS Management Console
      • IIS Management Service
    • World Wide Web Services
      • Application Development Features
        • .Net Extensibility
        • ASP.NET
        • ISAPI Extensions
        • ISAPI Filter
      • Common HTTP Features
        • Default Document
        • Directory Browsing
        • HTTP Errors
        • Static Content
        • WebDAV Publishing
      • Health and Diagnostics
        • HTTP Logging
        • Request Monitor
      • Performance Features
        • Static Content Compression
      • Security
        • Request Filtering

Если установлена утилита Deployment Image Servicing and Management tool, то можно установку сделать с помощью командной строки:

dism /Online /Enable-Feature /FeatureName:IIS-WebServerRole
dism /Online /Enable-Feature /FeatureName:IIS-WebServer
dism /Online /Enable-Feature /FeatureName:IIS-WebServerManagementTools
dism /Online /Enable-Feature /FeatureName:IIS-ManagementConsole
dism /Online /Enable-Feature /FeatureName:IIS-ManagementService
dism /Online /Enable-Feature /FeatureName:IIS-ISAPIFilter
dism /Online /Enable-Feature /FeatureName:IIS-ISAPIExtensions
dism /Online /Enable-Feature /FeatureName:IIS-NetFxExtensibility
dism /Online /Enable-Feature /FeatureName:IIS-ASPNET
dism /Online /Enable-Feature /FeatureName:IIS-WebDAV
dism /Online /Enable-Feature /FeatureName:IIS-Performance
dism /Online /Enable-Feature /FeatureName:IIS-HttpCompressionStatic

Установка BPMonline

После того как все предварительный работы выполнены, запускаем установку BPMonline. Установщик проведет по всем этапам. Хочу отметить несколько моментов, на которые стоит обратить внимание:

  1. Если СУБД – не локальный сервер, но нужно развернуть бекап из папки db установленного приложения.
  2. Если при установке подключение к базе было указано через Windows Authorization, то нужно в СУБД добавить пользователя, от имени которого запускается служба IIS

FAQ

Ниже буду добавлять список распространенных проблем по настройке IIS и их решения.

  1. Проблема: При входе на сайт еще до страници логина отображается сообщение:
    Handler “PageHandlerFactory-Integrated” has a bad module “ManagedPipelineHandler” in its module list
    Решение: Нужно доустановить ASP.NET:
    64-bit: %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
    32-bit: %windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i
    Найдено тут: http://stackoverflow.com/a/10541165

Нравится

Поделиться

6 комментариев

Ок, весьма доходчиво)

"Alexandr Kravchuk" написал:Если при установке подключение к базе было указано через Windows Authorization, то нужно в СУБД добавить пользователя, от имени которого запускается служба IIS

А если СУБД и IIS на разных машинах и это не домен?

"Котенко Александр" написал:

А если СУБД и IIS на разных машинах и это не домен?

С уважением, Котенко Александр.


Тогда нужно использовать не доменную авторизацию.

Если у вас Windows Server 2012 и BPMonline 7.x не забудьте включить еще HTTP Activation
Add Features

"Alexandr Kravchuk" написал:можно установку сделать с помощью командной строки:

Установка первых пяти прошла успешно. При установке
dism /Online /Enable-Feature /FeatureName:IIS-ISAPIFilter
cmd.exe выдал ошибку 1603. В чем может быть проблема?
Использование инструментров типа:
netfx_setupverifier.exe
cleanup_tool.exe
NetFxRepairTool.exe

и переустановка .net framework 4.6.2 ничего не меняет.

Показать все комментарии

BPM 5.2
По локальной сети все нормально подключаюсь к серверу.

Чтобы подключиться вне сети, прокинул порты до MS SQL сервера.
Но как настроить IIS не нашел ни на сайте terrasoft, ни в интернете (по крайней мере такого описания, которое я бы воспринял).

Кто-нибудь может подсказать как решить данную задачу?
Как вариант поднять VPN сервер на том же сервере MS SQL, но у VPN сервера будет уже другой ip-адрес. Скорее всего IIS так же не будет работать со вторым ip-адресом, если просто прописать website2 в конфиге IIS.

Нравится

12 комментариев

Не совсем понятно - у вас в локальной сети стоит IIS+MsSql ?
И вы хотите подключится извне сети к сайту ?
Насколько я понимаю вам достаточно прокинуть порт, по которому доступен сайт.

>Чтобы подключиться вне сети, прокинул порты до MS SQL сервера.
Или у вас MsSql в локальной сети, а сайт вы хотите поднять извне сети ?

Я хочу получиться к IIS снаружи. Прокидывание портов не помогает.

Здравствуйте.
Если в локальной сети сайт работает, то нет никакой необходимости пробрасывать доступ к SQL-серверу снаружи. Нужно только доступ к сайту по порту, на котором он висит. Что касается самого проброса, то этот вопрос лежит исключительно в области администрирования сети и зависит от конкретной реализации доступа к Интернет.
С уважением, Terrasoft Support Team.

Так порт 8080 я прокинул до сервера IIS, все равно не работает.
IIS пишет ошибку "Failed to translate IP address + Hostname to Site Id"

Что у вас стоит в настройках сайта в Bindings ?
Может быть проблема в том что IIS отлавливает только обращения по определенному доменному имени, а не по *:80 в целом ?

Из настроек IIS сервера:

        <sites>
            <site name="WebSite1" id="1" serverAutoStart="true">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="c:\5.2.0.458(456)_Release_Softkey_RUS_MSSQL_Realty_20121129\" />

Здравствуйте.
Что-то не так с "пробросом" порта на роутере. Вы снаружи можете подключаться на внешний IP Вашей сети не обязательно по 8080. Нужно на роутере настроить Port Forvardig (например для маршрутизаторов D-Link: http://www.dlink.ru/ru/faq/68/275.html). То есть перенаправление с порта, по которому Вы заходите снаружи на порт 8080 машины, где установлен IIS.
С уважением , Terrasoft Support Team.

Прилагаю скрин с маршрутизатора. Все верно сделал, там негде ошибаться.
Попробую поставить другой маршрутизатор, может быть дело в маршрутизаторе.

Илья, а так пробовали конфиг IIS'а задавать:

      <sites>
            <site name="WebSite1" id="1" serverAutoStart="true">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="c:\5.2.0.458(456)_Release_Softkey_RUS_MSSQL_Realty_20121129\" />

После того, как прописал :8080:, ошибка в IIS исчезла.

При этом в IIS пишет при запросе снаружи:
Request started: POST http://192.168.1.250:8080/Services/UserCounterValuesServic
e.asmx/GetUserCounterValues
Request ended: "http://192.168.1.250:8080/Services/UserCounterValuesService.asmx
/GetUserCounterValues" with HTTP status 200.0

Но в браузере все равно ничего не отображается.

А при запросах с локалной сети по прежнему все работает.

Все внезапно заработало. Спасибо за решение задачи.

Показать все комментарии
Публикация

В процессе разворачивания WebForm на IIS я столкнулась с проблемами, решением которых хочу поделиться в этой заметке.

Ошибка: Config Error

Cannot read configuration file due to insufficient permissions

Решение:

Для решения этой проблемы нужно выдать права на чтение папки с сайтом для пользователя IIS_IUSRS.

Ошибка: HTTP Error 401.3 - Unauthorized

HTTP Error 401.3 - Unauthorized You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server. IIS

Решение:

Проверить, включен ли анонимный доступ для этого сайта – раздел IIS Autentification.
Перейти в папку, где лежит сайт, и выдать в ней права пользователю IUSR на чтение.
Второй возможный вариант: Besides enabling Anonymous Authentication for the web site, I had to go a step further and Edit Anonymous Authentication (by right clicking) and change it from a Specific User to Application pool identity.

Ошибка: This assembly is built by a runtime newer[…]

Could not load file or assembly 'Interop.TSObjectLibrary' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded. IIS

Решение:

В окне IIS Manager перейти на Application Pool, в появившейся таблице выбрать наш сайт, дважды кликнуть на его записи и изменить версию .NET на подходящую нам.
pic

Ошибка: HTTP Error 500.21

HTTP Error 500.21 - Internal Server Error Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list

Решение:

Лично мне помогло aspnet_regiis.exe –i .
Подробно возможные пути решения проблемы описаны ниже.
After setting up a new Windows 7 computer with IIS 7.5 and Visual Studio 2010, I tried to start my ASP.NET 4.0 website using the Local IIS web server. However, right off the bat I was hit with the following IIS error message:

    HTTP Error 500.21 - Internal Server Error Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.

I knew the website worked correctly, because it ran fine in the Visual Studio Development Server, just not in IIS 7. Apparently, the reason I was recieving the Internal Server error message was that I had installed SQL Server 2008, after installing Visual Studio 2010, and because of this it corrupted the IIS Machine level configuration files ("If you install VS2010 and then install VS2008 and VS2008 SP1, the configuration files for ASP.NET in IIS only include about 1/2 of the correct .Net 4.0 configuration sections." read more here).
To repair this problem I ran a full silent repair of the .NET Framework 4.0. Here's how on either a 32 bit or 64 bit computer:

  1. Click Start -> All Programs -> Accessories -> Run
  2. In the Open textbox paste in the following line (see list of all .NET Framework version install, repair and unistall command lines here):
    For silent repair on 32 bit computer with .Net Framework version 4.0.30319 use:
      %windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart

    For silent repair on 64 bit computer with .Net Framework version 4.0.30319 use:
      %windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart
  3. Click OK to start the repair
  4. After, the repair ran for a few minutes, I restarted IIS 7.5, and things began to work correctly!

Hopefully, that will work for you...
Some people also seem to be having success correcting this error by running aspnet_regiis.exe. I initially tried this and it did not work for me, but feel free to give it a shot. (Keep in mind for the example below I have .Net Framework version 4.0.3.0319 installed on my computer, but you may need to change directory version to what is installed on your computer): Here's how to run aspnet_regiis.exe:

  • Run "aspnet_regiis.exe" program from command line (within Command Prompt):
      %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –i
  • If you want to open it using the Run program, just type in "Run" in the Windows 7 search box, then use the following line below in the Open box, then click OK:
      %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –i
  • Note if your computer is 64 bit, then I would change the line to:
      %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe –i

Hopefully, these solutions help get you up and running and fix the IIS7 error... Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.

Ошибка: An attempt was made to load a program with an incorrect format.

Could not load file or assembly 'Interop.TSObjectLibrary' or one of its dependencies. An attempt was made to load a program with an incorrect format.

Решение:

В окне IIS Manager перейти на Application Pool, в появившейся таблице выбрать наш сайт. Нажать правую кнопку, выбрать там Advanced Settings и в появившемся окне выставить параметр «Enable 32-Bit Applications» в значение True.

Ошибка: Windows Authentication not allowed

Решение:

В настройках IIS Аутентификация (на уровне сервиса, самый верхний) – разрешить аутентификацию с помощью Windows Autentification. Все остальные способы – запретить.
На уровне сайта – повторить процедуру, запретив все способы аутентификации кроме Windows Autentification.

Ошибка: Object 'Configuration' is not assigned

Решение:

Проверить, прописан ли путь к файлам конфигурации продуктов TERRASOFT в файлах RunSettings бинарников.
Если прописан - перейти в папку, где лежат конфигурационные файлы программного обеспечения TERRASOFT (пример: «%APPDATA% Terrasoft»), и выдать на нее права пользователю IUSR и IIS_IUSR на чтение.

Нравится

Поделиться

2 комментария

Марина, спасибо, очень полезная статья!

Показать все комментарии

IE - лучший браузер в мире

Проблема заключается в том что пользователь логинится на веб-форму и после нажатия на кнопку "Войти" попадает опять на ту же форму логина! Т.е. невозможно даже войти.

При этом такая проблема воспроизводилась только в IE, во всех версиях, во всех других браузерах работа была нормальной.

Проблема

После тщательного анализа выяснили, что если в названии хоста или домена есть символ подчеркивания, "_", например http: //your_host.com/Login.aspx - то IE не сохранит данные ваших сессий, любые другие переменные в куки. И это несмотря на то, что данных хост\домен добавлен в список доверенных, в IE настроена политика принимать куки с любого сайта (даже из списка запрещенных), отключена любая безопасность и т.д!!!

Выдержка с блога msdn:

Q5: IE won’t set a cookie when the hostname/domain contains an underscore?

A: Correct. Technically, underscore is not a DNS character, and while Windows will let you use an underscore when naming your machine, it warns you that doing so may cause problems. One such problem is that WinINET blocks attempts to set cookies on such domains.

Существует также множество других серьезных глюков в IE, поэтому рекомендую также ознакомиться со всей статьей, запись в официальном блоге Microsoft:
http://blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx

Решение

Если у вас такая проблема - не используйте IE - наверно лучшее решение :).

Ну а если серьезно, варианты решений:

  1. Переименовать имя сервера на имя не содержащее символы подчеркивания
  2. Настроить DNS переадресацию, например:
    • a. На каждом клиентском компьютере добавить в файл hosts запись вида: ip-адрес_серверапробел>имя_сервера (пример: 10.5.6.6 WebForm) – после этого обращаться к веб-форме можно будет с помощью адреса http://WebForm/Login.aspx - при этом имя домена уже не будет содержать символ подчеркивания и все будет отлично работать.
    • b. Если в локальной сети используется DNS-маршрутизация, есть DNS-сервер, то необходимо сделать для web-сервера синоним, не содержащий подчеркивания. Сделать это нужно в одном месте (не на каждом клиентском компьютере), поэтому это решение правильнее. После этого нужно перезагрузить DNS и обращаться к веб-форме используя синоним. Это должен делать администратор сети.

Приятной разработки :)

Нравится

Поделиться

3 комментария

Да. IE - это зло. С выходом новых версий ничего не меняется, если кто-то хочет понять причины: http://paulirish.com/2011/browser-market-pollution-iex-is-the-new-ie6/

IE всё правильно делает:


The LDH rule, as updated, provides that the labels (words or strings
separated by periods) that make up a domain name must consist of only
the ASCII [ASCII] alphabetic and numeric characters, plus the hyphen.
No other symbols or punctuation characters are permitted, nor is
blank space.

RFC 3696

"Зверев Александр" написал:IE всё правильно делает:

В этом случае, частично согласен, НО!

1. IIS мог бы как-то сказать видя, что хост называется не по правилам FQDN, а он принимает все как есть и в итоге IE не работает
2. Если есть настройки - от кого принимать куки, то должна быть настройка - "принимать куки даже если в имени есть подчеркивание" или хотя бы что-то в документации к IE или какая-то возможность это отключить и т.д. С точки зрения пользователя - вы разрешили для всех сайтов использовать куки. Но для некоторых они все же не используются. Почему??

Показать все комментарии

Здравствуйте,дорогие читатели моего блога.

Сегодня я хочу рассмотреть некоторые особенности настройки Web-формы Terrasoft Service Desk .

В основном все сводится к правильной настройки IIS. В документации «Руководства администратора» довольно подробно описано как сделать настройку IIS для разных версий: 6.0 (Windows Server 2003) и 7.0(Windows Vista, Windows Server 2008). Существуют, конечно, еще такие версии как 5.1 (Windows XP) и 7.5 (Windows 7, Windows Server 2008 R2), но основные отличия начинаются при переходе с 6-той на 7-мую версию.

Итак, на повестке дня следующий вопрос: «Как увеличить таймаут работы Web-формы?» Часто от пользователей появлялись пожелания увеличить на Web-форму таймаут в N часов. В настройках IIS по умолчанию сессия Web-формы существует только 20 минут, потом, при любых действиях, пользователя "выбрасывает" на страницу с логином, где приходится заново логиниться. Т.е. работая в Web-форме пользователю неудобно постоянно вводить свой логин и пароль, стоит ему отвлечься на 20 минут.

Хочу отметить, что Microsoft советует уменьшать таймаут:

«Если для приложения разрешено состояние сеанса, пользователь получает уникальный идентификатор сеанса при первом запросе веб-страницы у приложения ASP. По умолчанию срок действия сеанса заканчивается, если пользователь не запрашивает или не обновляет страницу в приложении ASP в течение 20 минут. Так как объекты сеанса занимают память веб-сервера, можно рассмотреть возможность уменьшения значения тайм-аута для сбережения ресурсов.»

Но для меня главным является удобство пользователя. Поэтому таймаут я буду увеличивать. Кстати, там написано как изменять этот параметр, но написано довольно скудно. Я постараюсь более подробно и полно описать процесс настройки.

  • У меня уже есть готовая настроенная Web-форма на IIS 7.0. Вот как выглядит настроенный сайт в диспетчере сервера
  • А это окно логина в запущенной Web-форме
  • И, собственно, сама Web-форма в действии. Для примера, список инцидентов
  • Теперь покажу где установлен таймаут. Становлюсь на службу IIS в диспетчере служб, выбираю внизу «Просмотр возможностей» (по умолчанию эта вкладка уже активна)
  • Выбираю ASP в списке возможностей
  • Далее в действиях нажимаю на ссылку «Открытие функции» или двойное нажатие на ASP
  • В группе службы разворачиваю «Свойства сеанса»
  • Время сеанса установлено в 20 минут. Ставлю, например, 10 часов: 10:00:00. В правой части окна в разделе «Действия» нажимаю на ссылку «Применить» для сохранения изменений

  • Приметка: По информации с сайта Microsoft эту же операцию можно сделать в командной строке с помощью команды appcmd. Сначала у меня не получилось. Но потом, немного поискав, нашел нужную комбинацию параметров. Для моего случая это будет выглядеть так: %windir%\system32\inetsrv\appcmd set config /section:asp /session.timeout:10:00:00. Отмечу, что для 64-битной системы нужно вместо system32 писать syswow64.

  • После этого нужно настроить состояние сеанса. Становлюсь на мою Web-форму и выбираю «Состояние сеанса» в списке возможностей
  • Перехожу внутрь двойным щелчком мыши и нахожу ниже «Параметры файла cookie» -> «Тайм-аут (в минутах)»
  • Изменяю значение на 600, что значит 10 часов и в правой части окна в разделе «Действия» нажимаю на ссылку «Применить» для сохранения изменений
  • И последнее, нужно настроить таймаут простоя пула приложений. Для начала узнаю на какой пул приложений настроена моя Web-форма. Становлюсь на Web-форму
  • В разделе «Действия» нажимаю «Основные настройки...» – вижу, что для моей Web-формы установлен стандартный (устанавливаемый по умолчанию) пул приложений «DefaultAppPool». Закрываю это окно без изменений.
  • В диспечеру служб выбираю «Пулы приложения» и нахожу нужный мне пул
  • Выбираю «Дополнительные параметры» в разделе «Действия» и нахожу «Тайм-аут простоя (в минутах)»
  • Устанавливаю значение в 600, что соответсвует 10 часам, и нажимаю кнопку OK
  • Для того, чтобы все изменения вошли в силу – перезагрузагружаю IIS. Становлюсь на IIS в диспетчере служб и в разделе «Действия» выбираете «Перезагрузить». Хотя, как показывает практика, если при каждом изменении нажимать в действиях на «Применить» – то изменения уже вступили в действие и для всех пользователей, которые войдут на сайт Web-формы, будут действовать уже новые параметры.

Если есть какие-то вопросы – задавайте, с удовольствием отвечу.
Продолжение для IIS 6.0 читайте тут.

Нравится

Поделиться

4 комментария

У меня система BPMonline Realty 5.
Сделала описанные выше настройки на своем сервере.
Помимо вышеуказанного, сделала изменения в настройках в файле web.config
Тем не менее, по прохождению времени пользователя из системы не выкидывает.:confused:

Здравствуйте, Антонина!

Для приложения BPMonline 5 существуют три таймаута: авторизационный и сессионный (настраивается в web.config), а также, таймаут пула приложения.

Изменения необходимо внести в файл Web.config –

system.web/ authentication/forms - параметр timeout="359" авторизационный
system.web/sessionState - параметр timeout="360" сессионный

Время указано в минутах.

Прошу обратить внимание на то, что авторизационный параметр должен быть меньше чем сессионный, а сессионный должен быть такой же, как и параметр таймаута пула на стороне IIS.

Таймаут пула в IIS:

"Резвов Роман" написал:

Здравствуйте, Антонина!

Для приложения BPMonline 5 существуют три таймаута: авторизационный и сессионный (настраивается в web.config), а также, таймаут пула приложения.

Изменения необходимо внести в файл Web.config –

system.web/ authentication/forms - параметр timeout="359" авторизационный

system.web/sessionState - параметр timeout="360" сессионный

Время указано в минутах.

Прошу обратить внимание на то, что авторизационный параметр должен быть меньше чем сессионный, а сессионный должен быть такой же, как и параметр таймаута пула на стороне IIS.

Таймаут пула в IIS:

С уважением,

Роман Резвов

Специалист службы поддержки II линии

Группа компаний Terrasoft


Роман, так и делала. Для теста указала:
авторизационный - 3мин
сессионный - 5мин
В пуле - 5мин.
Инструкцию как делала, прикрепила.

Антонина, существует два Web.config: в корне бинарных файлов и в папке Terrasoft.WebApp. Необходимо вносить изменения именно в корневой Web.config.

Несмотря на "Хочу обратить Ваше внимание, что данный параметр будет применен для всех сайтов запущенных на IIS сервере." попробуйте, пожалуйста, установить таймаут одному конкретному пулу.

Показать все комментарии

С чего начинается интернет. Конечно же Apache, наверное это единственный "живой" веб-сервер, который появился на заре развития интернета, и который продолжает жить и здравствовать. Ну, собственно, это была полемика, а мы перейдем к практике.

Итак, обзаводимся инструментами

  1. Собственно, сам сервер Apache. Идем на сайт http://httpd.apache.org/download.cgi. Поддерживаемые версии на сегодня это 2.0.X и 2.2.X (да-да, 2.2 ветка уже тоже поддерживается). Внимание!!!: хотим SSL? Конечно. И не забываем, что нам надо взять соответствующий установочный пакет "Win32 Binary including OpenSSL 0.9.8m (MSI Installer)".
  2. Ваш любимый блокнот, где придется немного подредактировать конфигурационные файлы Apache.
  3. Хотим SSL? Конечно же, безопасность превыше всего. Тогда идем на http://www.slproweb.com/products/Win32OpenSSL.html (официальный сайт библиотек OpenSSL для Windows). И скачиваем оттуда версию "Win32 OpenSSL v1.0.0a Light" (для тех, кто в 64-битном танке, там есть версия "Win64 OpenSSL v1.0.0a Light"). И не в коем случае не берите полную версию - она абсолютно не нужна.
    Да, чуть не забыл. Вы абсолютно не должны смущаться, по поводу разных версий OpenSSL в установочном пакете Apache и в поставке Win32 OpenSSL Light.
  4. Ну и естественно, нужен пациент. То есть Terrasoft версии 3.3.2, веб-сервисы которого мы и будем подключать к Apache 2.X.X.

Краткое отступление. Когда писалась данная заметка, я тестировал все нижеописанное в следующей конфигурации: Windows Server 2008 32-bit, Apache 2.2.15 32-bit with SSL, IIS 7.0 (по умолчанию, я установил все расширения), Terrasoft XRM 3.3.2.107. Соответственно, все мои изыскания были проведены для данных версий. Но, скажу честно и откровенно, должны заработать и в других комбинациях.

Установка Apache.

Все до ужаса просто. Кликаем всегда далее и вот у нас стоит Apache, и он даже запустился. Так, только прежде чем ставить Apache, давайте посмотрим вокруг себя и попытаемся найти того, кто (или что) нам обязательно будет мешать. Вот некоторые кандидаты, замеченные Вашим покорным слугой.

Кандидат №1 - это конечно же уже установленный и запущенный Apache (другой версии). Если он Вам нужен - Вы и так уже знаете как его ставить, а если не нужен - удаляйте :smile:, удаляйте :lol: - мы же все равно ставим новый.:twisted:

Кандидат №2 - это IIS. А-я-я-й. Мы же Apache ставим - зачем нам IIS. Поэтому необходимо удалить IIS с компьютера, чтобы он Вам не мешал и "не портил всю картину".
Как его удалять - ну это уже задание на дом - для изучения всяких-таких руководств от Microsoft.

Кандидат №3 - Skype. Ага, а что ему делать на сервере? Ну если он все-таки там нашелся, необходимо в его настройках отключить использование 80 и 443 портов (а он, редиска, использует их по умолчанию - зачем, это уже другая песня).

Итак, смотрим на скриншоты и вперед. В основном, установка идет со значениями по умолчанию.
Шаг №1

Шаг №2

Шаг №3

Шаг №4. Обратите внимание на значение в поле ServerName. Если Вы не будете использовать виртуальный хостинг, то здесь должно быть прописан полный адрес вашего сервера.
Также, по умолчанию, ставим Apache как службу системы с автоматическим запуском и прослушиванием порта 80.

Шаг №5

Шаг №6

Шаг №7

Проверить работоспособность можно, если перейти по адресу http://127.0.0.1/ или по адресу http://имя_Вашего_сервера>/. Если Вы увидите след. картинку, то можно считать, что Apache установлен, запущен и работает нормально.

Установка Terrasoft XRM

Здесь я даже останавливаться не буду. Это итак разложено по полочкам в "Руководстве администратора". Единственный момент (а оказывается многие забывают) - это надо настроить путь к папке Settings в файле RunSettings.xml
К примеру, после установки Terrasoft XRM со значениями по умолчанию, путь к папке Settings будет C:\Program Files\Terrasoft\Settings\.

После этого, необходимо запустить TSClient.exe и настроить подключение к конфигурации.

Настройка Web-сервисов под Apache

Итак, Apache есть, Terrasoft XRM установлен. Самое время подключить web-сервисы. Открываем в любимом редакторе файл httpd.conf, который находиться в папке conf корневой папки установки Apache (если ставили по умолчанию, то это будет C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf) и в конец файла добавляем следующие строки (для Apache 2.2.x)

LoadModule tsapache_module \
     "С:\Program Files\Terrasoft\Bin\TSWebServicesServerLibraryApache22.dll"
/TSWebServices>
        SetHandler TSWebServicesServerLibraryApache22-handler
>

Для Apache 2.0.x, строки будут следующие

LoadModule tsapache_module \
     "С:\Program Files\Terrasoft\Bin\TSWebServicesServerLibraryApache20.dll"
/TSWebServices>
        SetHandler TSWebServicesServerLibraryApache20-handler
>

Название виртуальной директории (в данном примере TSWebServices) Вы можете придумать самостоятельно так, как Вам нравится.

Чтобы изменения вступили в силу, необходимо произвести перезапуск Apache сервера. Если по быстрому, то в трее у Вас должен быть значок Apache Monitor , кликнув по которому откроется окно программы, в котором можно сделать перезапуск (остановку/запуск) сервера Apache. Если перезапуск прошел успешно, значит модуль веб-сервисов загрузился успешно. Можно проверить работоспособность, если перейти по адресу http://127.0.0.1/TSWebServices/ (где вместо 127.0.0.1 может быть записан полный адрес сервера, а TSWebServices - это название виртуальной папки, которое Вы указали в httpd.conf). Вы должны увидеть следующую картинку

Увидели - вуаля. Web-сервисы под Apache запущенны и работают. Далее необходимо настроить клиент Terrasoft, но останавливаться на этом не буду, так как в руководстве данный материал полностью раскрыт и освещен.

Настройка SSL.

Вот собственно мы и добрались до самого главного. То есть до безучастности. Конечно, многие могут возразить, зачем, мол, веб-сервисы да еще и через SSL - не проще ли поднять VPN или заходить на удаленный рабочий стол.
Да, неверное многие так и делают, но дискуссии на тему что лучше мы оставим другим, а сейчас просто займемся настройкой SSL под Apache.

Но сначала немного теории. Итак, для того чтобы обзавестись защищенным каналом, необходимо наличие сертификатов. А здесь начинаются сплошные непонятные слова и действия. (Да, можно и бубен прикупить, с надписями SSL). Но мы сейчас быстро разложим все по полочкам.

Собственно, сертификат - это заверенный удостоверяющим центром электронный (или печатный, что очень редко) документ, подтверждающий принадлежность владельцу открытого ключа или каких-либо атрибутов. А теперь, чтобы не надо было ломать мозги, представим себе, что сертификат - это какой либо документ (например копия Вашего паспорта) содержащий Ваши данные и это все заверено государственным нотариусом. Ведь ни у кого не будет сомнений, что это копия действительно Вашего паспорта, а не дяди Васи со стороны. То есть, удостоверяющий центр - это такая организация, которой все доверяют. Довольно известные компании Thawte, VeriSign очень давно работают в этом сегменте, что позволяет им довольно интенсивно влиять на многие аспекты сертификации в целом.

Для нас же с Вами, сертификат - это некий файл в формате X.509 (может быть текстовым, а может и не быть :-)) который содержит информацию про Вас, и информацию про того, кто сертификат "заверил". Понятие "заверил" не зря взято в кавычки - это значит что в Вашем сертификате стоит электронная цифровая подпись той компании, которая подтвердила правдивость Ваших данных. Собственно, как мокрая печать нотариуса на документах.

Также существуют корневые сертификаты (CA). Корневой сертификат - это сертификат, который заверен сам собой. Напрашивается вопрос - зачем сертификат который заверен своей же организацией. А вот ответ на самом деле очень простой. Если каждый сертификат должен быть кем-то заверен (далее по тексу буду использовать выражение "подписан", так как в мире сертификатов оно больее полно раскрывает смысл), то где-то должно быть начало этой цепочки. Так вот, начало этой цепочки - это и есть корневой сертификат.

Кроме всего этого, существуют публичные списки корневых сертификатов. Это списки тех сертификатов, которые либо включены в операционную систему либо встроенны в приложение (например, браузер Mozilla Firefox). Используя эти публичные сертификаты (CA) приложение может проверить "на действительность и правильность" любой сертификат. В случае с браузерами - мы видим "позеленевшую" адресную строку, когда заходим на любой сайт HTTPS.

Итак, было немного теории, теперь перейдем к практике.

Для начала подготовим инструменты - это минимальный набор файлов: openssl.exe, libeay32.dll, ssleay32.dll и главное - openssl.cfg. Можно забрать архивом прикрепленных файлах. Распаковываем. Конечно, туда, куда Вам больше нравится.

Теперь вкратце о том, что необходимо сделать. Так как мы будем генерировать (создавать) все сами - (денег нет, не дают, нет необходимости покупать у гигантов CA) - то нам необходимо будет сгенерировать два сертификата. Первый - это RootCA - то есть наш корневой сертификат, который мы сами же и подпишем. Второй - это сертификат сервера, на котором будут работать вебсервер.

Чтобы долго не расписывать что, как и почем, в архиве есть файл gen.cmd (для любознательных - можете заглянуть внутрь). Запускаем и идем по шагам.

Итак, какие данные у вас спросит скрипт.


Код страны - двухбуквенное обозначение, вводить необходимо в верхнем регистре.


Название компании. Обязательно латиницей. На данный момент пробелы в названии не поддерживаются (хотя для любопытных - можете попробовать).


Название сервера - это должно быть полное FQDN имя домена, для которого будет сгенерирован сертификат. Обычно - это полное название компютера, на котором установлен Apache2 (или IIS). Если это не так - ну тогда Вам прямая дорога к вашему системному администратору (если это не Вы) - он должен быть в курсе.

Введенные данные будут записаны в файл info.txt.



Пароли - первый для приватного ключа от CA, второй - для приватного ключа сервера. Минимум - 4 символа. (Сохранены будут с файлах с расширением .pwd)

После этого будут сгенерированны ключи и сертификаты. При создании экспортных версий (для MS) - будут запрошены пароли экспорта - эти пароли будут запрошены при импорте сертификатов в MS.

Да, если у Вас что-то пошло не так, там есть простенький файл clean.cmd - который удалит все сгенерированные и промежуточные данные. (Внимание, приватные ключи тоже будут удалены).

Продолжение следует...

Нравится

Поделиться

6 комментариев

Супер, Миша, СПАСИБО!

Мне понравился стиль аффтара. +5

Зачмечательный пост.+1.
К слову о Skype на сервере. Его не обязательно удалять, главное не запускать до старта самого веб-сервера, а потом можно, скайп смотрит не занят ли 80й порт и если занят, то пользует другой (какой не помню).

У многих, кто пытается протестировать веб-сервисы с Apache'м на локальной машине Skype либо уже запущен, либо в автостарте. По крайней мере, если Apache не заработает - это один из вариантов, почему он не работает.

Отмечу особый изящный стиль изложения, ну и конечно высокий уровень подготовки материала. Ты сэкономил многие часы работы нашим коллегам и Клиентам!
Фраза про 64-битный танк очень актуальна.

Дополню немного этот материал.

Корневой сертификат и сертификат сервера сгенерирован, все хорошо. Хотелось бы немного рассказать об установке сертификатов на сервер IIS и настройке соединения на клиентских машинах.

Итак, по порядку.

После того, как вы сгенерировали сертификаты, вам необходимо их установить на сервер.
При установке сертификатов очень важен порядок их установки.

Первым устанавливаем корневой сертификат (CA, файл ca.crt). Для этого открываем этот сертификат встроенной программой просмотра сертификатов и нажимаем кнопочку "Установить". Установить корневой сертификат нужно в Trusted Root Certification Authorities\Local Computer (категория доверенных корневых центров сертификации)

Далее устанавливаем сертификат сервера, который подписан уже установленным корневым сертификатом. Для этого заходим в панель управления IIS, заходим в раздел управления сертификатами и устанавливаем серверный сертификат server.p12 (формат .p12 аналогичен формату .pfx). При этом этот сертификат уже будет доверенным, т.к. он подписан корневым сертификатом, которому вы доверяете.

После этого в настройках привязки сайта к портам и протоколам (Bindings) для настройки SSL указываем только что импортированный серверный сертификат:

Теперь настроим Terrasoft на клиентской машине.
Для этого в настройках SSL прописываем:

Файл корневого сертификата - путь к файлу корневого сертификата ca.crt, который вы предварительно скопировали на клиентскую машину.

Данные о том кем и кому выдан этот сертификат берем из его свойств:

Внимательно переписываем эти данные, т.к. сравнение происходит по строгому совпадению.

Все, ваши веб-сервисы для работы через защищенное соединение SSL настроены!

Показать все комментарии