Ребята, вы сами читаете инструкции, которые пишете?
Как нормальному человеку разобраться вот в этом. Читаем в инструкции:
..\Terrasoft.WebApp\Web.config
Ок. Пока - все понятно. Но, дальше мы видим заголовок:
Настройка Web.config и Terrasoft.WebApp\Web.config
Тааак. Мы же только что настроили Terrasoft.WebApp\Web.config Ок, наверное, просто повторили. Бывает.
Но, что это?!!
...
...
...
...
...
...
Мы видим совсем другой фрагмент конфига! Во-первых, он гораздо больше предыдущей версии. Но, это еще можно белыми нитками пришить. А, во-вторых, номер порта уже совсем другой!!! Все, приехали - какой из вариантов правильный?
Как в этом разобраться?
Нравится
Добрый день!
"bayborodin" написал:Но, что это?!!
<wsService type="Terrasoft.Messaging.MicrosoftWSService.MicrosoftWSService, Terrasoft.Messaging.MicrosoftWSService" encrypted="false" portForClientConnection="2011" />
...
<location path="." inheritInChildApplications="false">
<system.web>
...
<httpRuntime maxRequestLength="102400" executionTimeout="28800" targetFramework="4.5" />
<httpHandlers>
...
<add verb="GET" path="*ViewModule.aspx.ashx" type="Terrasoft.Messaging.MicrosoftWSService.WSHandler, Terrasoft.Messaging.MicrosoftWSService" />
...
<system.webServer>
...
<handlers>
...
<add name="WSHandler" verb="*" path="*ViewModule.aspx.ashx" type="Terrasoft.Messaging.MicrosoftWSService.WSHandler, Terrasoft.Messaging.MicrosoftWSService" />Мы видим совсем другой фрагмент конфига! Во-первых, он гораздо больше предыдущей версии. Но, это еще можно белыми нитками пришить. А, во-вторых, номер порта уже совсем другой!!! Все, приехали - какой из вариантов правильный?
Это выборка параметров web.config, которые нужны для функционирования Microsoft WebSockets.
Порт можно указать какой угодно, главное, чтобы он был доступен для подключения.
Замечательно! Из контекста это понятно? Об этом прямо где-то сказано? В одном месте инструкции у вас один порт, в другом - совсем другой. И - ни слова об этом?
Браво! Качество документации соответствует качеству продукта!
"bayborodin" написал:Качество документации соответствует качеству продукта
1) это не документация
2) веб-сокет не продукт Террасофт
bayborodin, не совсем понял, какое отношение качество моей инструкции имеет к качеству продукта bpm'online)
Замечания я принимаю, в дальнейшем применю, спасибо.
Ровно эту же инструкцию мне выслала техподдержка Террасофта. Значит - имеет отношение.
Настраиваются веб-сокеты - да, не ваш продукт. Но, настраиваются не глобальные настройки, а настройки веб-сайта BPM, и это - уже ваша зона ответстенности, а не Microsoft.
"bayborodin" написал:ваша зона ответстенности
(я не Террасофт)
это как раз ваша зона ответственности раз у вас on-site) Террасофт вам может только "помочь советом"
инструкция не понятная, но ваша реакция еще менее понятна
Здравствуйте, bayborodin.
Как вариант, номер порта можно указать тот, на котором "висит" сайт.
Коллеги подскажите в какое место надо добавить
<wsService type="Terrasoft.Messaging.MicrosoftWSService.MicrosoftWSService, Terrasoft.Messaging.MicrosoftWSService" defaultPort="0" encrypted="false" portForClientConnection="44310" />
в файле \Terrasoft.WebApp\Web.config
?
Спасибо.
Здравствуйте, Марат!
Выполните поиск по файлу с текстом "wsService type".
У меня нет такого "wsService type" в файле \Terrasoft.WebApp\Web.config я поэтому и удивляюсь.
"Юсупов Марат" написал:У меня нет такого "wsService type" в файле \Terrasoft.WebApp\Web.config я поэтому и удивляюсь.
А в итоге все таки нашли? я просто сейчас тоже ищу кудаж эту строчку вставить...
https://academy.terrasoft.ru/documents/sales-enterprise/7-10/nastroyka-…
По сути изменения нужжно вносить только в web.config приложения. Изменения, вносимые в web.config загрузчика незначительные.
Что-то мне это напоминает :)
Я как-то было дело, тоже "лютовал", но правда прямо в саппорт :)
Действительно надо бы инструкцию поправить, ну и вообще переработать,
Предлагаю открыть тут на сообществе тему, составить ее общими усилиями, а финальный вариант, коллеги из службы поддержки заберут на "Академию".
"Севостьянов Илья Сергеевич" написал:Что-то мне это напоминает :)
Я как-то было дело, тоже "лютовал", но правда прямо в саппорт :)Действительно надо бы инструкцию поправить, ну и вообще переработать,
Предлагаю открыть тут на сообществе тему, составить ее общими усилиями, а финальный вариант, коллеги из службы поддержки заберут на "Академию".
Найс:)
Идея хорошая, но пока я что-то все равно не смог сделать так, чтобы сокеты система признала корректными...
Можете подсказать как вы решили данный вопрос?
Итак все решено:
в файл Web.config в папке Terrasoft.WebApp необходимо было строку
<wsService type="Terrasoft.Messaging.SuperWSService.SuperWSService, Terrasoft.Messaging.SuperWSService" defaultPort="2011" encrypted="false" portForClientConnection="44310" maxConnectionNumber="100" clearIdleSession="false" clearIdleSessionInterval="120" />
заменить на строку
<wsService type="Terrasoft.Messaging.MicrosoftWSService.MicrosoftWSService, Terrasoft.Messaging.MicrosoftWSService" encrypted="false" portForClientConnection="0" />
справедливости ради, отмечу, что у нас не возникало проблем с настройкой WenSocket'ов (не считая косяка с портом 2011 для MicrosoftWSService)
Вообщем суть такая что изначально (из дистрибутива) в конфигах прописывается настройка для SuperWebsoket, а соответственно и директивы Terrasoft.Messaging.SuperWSService.SuperWSService
Ежели мы хотим юзать Websoketsиз Application dev-kit порставки Windows Server 2012+
то необходимо править конфиги, и об этом прямо не указано было в инструкции что тогда была нам предоставлена (кстати автор темы не указал ссылку на инструкцию о которой конкретно он говорит :) я так думаю имеется в виду Статья на "Академии")
И она мягко говоря "так себе".
Минутка объективной критики:
1) Так вот в статье и сейчас не написано, что по умолчанию в конфиге идут настройки для SuperSockets и надо одни директивы заменить на другие
А в идеале даже показать какие на какие, чтобы была возможность воспользоваться поиском нормально, а не угадайкой искать.
2) Неплохо было бы упомянуть, хоть вскользь :wink: что непосредственно компонент Websokets вообще-то надо для начала установить, из диспетчера сервера в компонентах IIS сервера, в группе "Средства разработки"
3) Ну и неплохо было бы описать какую либо методику для проверки собственно корректной работы этих самых websokets (тех.подержка кстати так ничего внятного и не ответила на запрос по методологии проверки), но как минимум указать что при запуске приложения, открывайте консоль и ожидайте получить там сообщение о корректном подключении по Websokets
Что это будет одним из первых сообщений при загрузке страницы в формате:
WebSocket-connection opened for url:ws://{ВашСервер}:{Порт}/0/Nui/ViewModule.aspx.ashx
за авторством all-combines.js
PS: Хотя как показала практика, это не гарант корректной работы.
Для более гарантированной проверки следует инсцинировать удаление связанных данных, например создать Активность связанную с контактом и попробовать удалить последнего, и в случае если вы получите сообщение "Удаление данных произошло с ошибкой, обратитесь к системному администратору", то 90% у вас некорректно работают WebSockets.
4) Неплохо было бы описать доступные атрибуты XML директив: portForClientConnection, encrypted, может есть какие-то еще но в опущенном виде принимают дефолтовые значения и т.д.
По сему еще раз предлагаю - собрать инициативную группу "тех кто уже помучался и знает" возможные косяки" и что куда, и накидать годную инструкцию с блекджеком и... разбором типовых проблем в том числе.
"Севостьянов Илья Сергеевич" написал:2) Неплохо было бы упомянуть, хоть вскользь что непосредственно компонент Websokets вообще-то надо для начала установить, из диспетчера сервера в компонентах IIS сервера, в группе "Средства разработки"
"Севостьянов Илья Сергеевич" написал:Неплохо было бы описать доступные атрибуты XML директив: portForClientConnection, encrypted
серьезно?
"Севостьянов Илья Сергеевич" написал:методику для проверки собственно корректной работы
1) проверка консоли на ошибки WS - как Вы описали, только не путать с сокетами телефонии (например, Webitel'a)
2) проверка соединений WS во вкладке Network инструментов разработчика
2.1) запуск любого БП с интерактивными элементами, идущими после системных - при неработающих сокетах элементы не откроются пользователю.
2.2) запуск различных действий, ожидающих асинхронного ответа от сервера: удаление записей, импорт из эксель
3)Если у вас два сайта на одном сервере с одинаковыми клиентскими портами на сокетах (актуально только для SuperWS), то элементы будут открываться, только до тех порт пока на другом приложении WS-соединение не обновится - тогда на первом в консоль посыплются ошибки, что соединение потеряно
"Севостьянов Илья Сергеевич" написал:1) Так вот в статье и сейчас не написано, что по умолчанию в конфиге идут настройки для SuperSockets и надо одни директивы заменить на другие
согласен, это не помешает
"Андросов Дмитрий" написал:Неплохо было бы описать доступные атрибуты XML директив: portForClientConnection, encrypted
Естественно я имею в виду не перевод с английского языка :lol:
Я имею виду нотацию - краткое описание назначения аттрибута и допустимых его значений.
н/п какие значения может принимать аттрибут encrypted - только true/flase или возможно там может быть указан конкретный протокол шифрования, например encrypted="AES", encrypted="RSA256"
Что это вообще за шифрование, чего с чем, каким алгоритмом при значении true portForClientConnection=0, что означает присвоения этому атрибуту нулевого значения, нет такого порта TCP это loopback :biggrin:, в данном случае скорее всего имеется в виду что при нуле - порт будет произвольный (но это догадки)
А так же вообще поименованный перечень всех допустимых аттрибутов для диррективы, т.к. некоторые могут быть опущены но по факту существовать и иметь значения "по умолчанию".
Илья, здравсвуйте!
В bpmonline есть два типа подключения по websocket:
- MicrosoftWSService
- SuperWSService
В зависимости от версии сервера, можно настроить нужное подключение: 2008 поддерживает только SuperWSService, 2012 - оба (при включенной компоненте WebSocket).
Теперь по параметрам:
defaultPort - порт для подключения. Необходимо настраивать только для SuperWSService.
portForClientConnection - при параметре 0 указывает, что порт не задается. Параметр был создан для ранних версий приложения для маршрутизации подключений в случае, если на одном сервере приложения развернуты несколько сайтов. Сейчас по сути не используется.
Параметр encrypted отвечает за защиту соединения. По этой причине может принимать два значения - true (защищенное), false (незащищенное). Изменение этого параметра описано в статье по переводу сайта на https. Изменение параметра возможно только на 2012 сервере - мне не удавалось настроить https при подключении websocket по типу SuperWSService.
Отлично.
Вот теперь осталось все скомпилировать в "годную" инструкцию.
Не хочется тратить время зря, по этому спрошу представителей тех.поддержки (если они здесь присутствуют):
Если я аккумулирую знания предоставленные пользователями в этой теме в единую инструкцию - вы разместите ее на Академии, или это начинание никудышное ?
"Андросов Дмитрий" написал:и кстати, в 7.10 есть автоматическая проверка сокетов
За всю практику видел этот "пушап" только один раз, и еще на 7.9.1
При этом с сокетами регулярно имелись проблемы, так что адекватность своевременного пушапа - под вопросом.
Когда его увидели даже ходили в саппорт и вопрошали на предмет: "Раз уж есть какая-то само диагностика которая собственно и выводит сие сообщение, - как ее запустить принудительно, так как была показана единожды, проблемы не решены но и сообщения больше не показывается".
Так нам ничего и не ответили... толком, посоветовали ходить удалять связанные с активностями контакты и т.д.
Вы знаете как запустить такую проверку вручную или инсценировать ее ?
"Андросов Дмитрий" написал:лучше напишите коммент на статью
еще недавно на сайте академии все вот эти комментарии на статью банально не работали - валились с ошибкой AJAX запроса - это поправили ?
Илья, какая у вас конкретно проблема, что вы хотите реализовать? Отзывы на академии работают.
"Севостьянов Илья Сергеевич" написал:Вы знаете как запустить такую проверку вручную или инсценировать ее ?
"Демьяник Алексей" написал:Илья, какая у вас конкретно проблема, что вы хотите реализовать?
"Севостьянов Илья Сергеевич" написал:Если я аккумулирую знания предоставленные пользователями в этой теме в единую инструкцию - вы разместите ее на Академии, или это начинание никудышное ?
Здравствуйте!
Илья, рекомендую оставить отзыв на Академии, указав неточности, а также информацию, которой не хватает. Согласно этим рекомендациям и потребностям статьи будут расширены.
Здравствуйте!
Илья, рекомендую оставить отзыв на Академии, указав неточности, а также информацию, которой не хватает. Согласно этим рекомендациям и потребностям статьи будут расширены.
"Демьяник Алексей" написал:Илья, рекомендую оставить отзыв на Академии, указав неточности, а также информацию, которой не хватает. Согласно этим рекомендациям и потребностям статьи будут расширены.
Это крайне неудобно учитывая что для инструкции требуются листинги и скриншоты.
Ну как говорится - "на нет и суда нет".
Обращаясь к пользователям сообщества - считаете ли Вы что такую статью можно (или даже нужно) разместить здесь - на форуме сообщества ?
Илья, рекомендую разместить инструкцию в разделе "Блоги" на community.