OneScript в облаке или Развертываем http-сервис OneScript на хостинге

05.05.18

Разработка - OneScript

В статье описан процесс развертывания web-приложения, созданного на базе http-сервисов OneScript на бесплатном хостинге.

 

Введение
Для публикации web-сайта в сети интернет необходим как минимум установленный web-сервер, а также выделенный "белый" ip адрес. Также желательно наличие доменного имени, по которому пользователи будут обращаться к Вашему сайту. Установка и настройка web-сервера, его публикация в internet, а также настройка доменного имени могут вызывать проблемы у разработчиков или малого бизнеса. Альтернативным решением может служить размещение сайта на хостинге.
Поскольку создание сайтов или иных web-приложений на базе http-сервисов OneScript вполне себе возможно, попробуем развернуть тестовый интернет магазин на каком-нибудь хостинге. Результаты развертывания можно увидеть, нажав на кнопку "Показать демо", которая обычно расположена справа.

 

Выбор хостинга 
Поскольку основой http-сервисов OneScript является технология ASP.NET, нам необходим бесплатный Linux или Windows хостинг с поддержкой этой технологии. Беглое изучение предложений показало, что при всем богатстве выбора, бесплатных предложений с поддержкой ASP.NET практически нет. Я уже было хотел оставить эту идею, однако, изучая выдачу гугла и читая ответы на аналогичные вопросы наткнулся на хостинг somee . Как оказалось - это Windows-хостинг, который имеет бесплатный тарифный план с поддержкой ASP.NET, который включает домен третьего уровня, 150 МБайт дискового пространства, 5 ГБайт трафика/мес, а также 15 МБайт пространства для базы MSSQL. В общем-то - не густо :), однако для небольших приложений и тестирования вполне подойдет. 
Ну вот, хостинг выбран, приступим к созданию сайта:

 

Создание сайта
На основании моего опыта, данный процесс описан подробно для не-англоговорящей аудитории :). Те, кто достаточно свободно владеет английским, могут сразу переходить к пункту "Развертывание приложения" (и не пинать меня за столь подробное описание).

Нажимаем кнопку "Learn More"

Затем, кнопку "Order Now"

В появившемся окне для создания нового аккаунта заполняем обязательные поля и нажимаем "Register a new account"

На адрес электронной почты, введенный при регистрации будет выслан код активации. Введем его на странице подтверждения и нажимаем "Confirm".

После некоторого раздумья, появится страница, со списком заказанных услуг. Там должна быть одна запись, соответствующая нашему тарифному плану. 
Нажимаем "Checkout"

Опять-таки после некоторого раздумья, мы попадем на страницу мастера создания нового сайта. В поле "Site Name" вводим имя поддомена нашего сайта. В моем случае я выбрал имя поддомена yepcart. Таким образом, в дальнейшем, я смогу обращаться к своему сайту по имени http://www.yepcart.somee.com или http://yepcart.somee.com.
В качестве операционной системы можно выбрать Windows Server 2016 или Windows Server 2012. В списке версий .NET должна быть версия 4.5. Это обусловлено системными требованиями OneScript. Также можно ввести имя сайта и описание.
В заключение нажимаем "Create Site"

По прошествии некоторого количества времени, система сообщит нам, что наш сайт успешно создан. Перейдем к свойствам, созданного сайта, нажав на "Manage website".

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

Протестируем созданный нами web-сайт, перейдя в браузере по url, который указан в свойствах сайта.

 

Развертывание приложения
В качестве приложения для развертывания был выбран демонстрационный интернет-магазин, описанный в статье //infostart.ru/public/817239/. Поскольку выбранный хостинг поддерживает подключение по ftp, развертывание приложения представляет собой простое копирование файлов приложения в папку на хостинге.
Однако, в связи с тем, что наже приложение настроено на использование классического пула приложений, а хостинг предоставляет только интегрированный пул - необходимо внести некоторые изменения в файл web.config
Настройки для использования классического пула:

<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="*.os" type="OneScript.ASPNETHandler.ASPNETHandler, ASPNETHandler" />
    </httpHandlers>
    <customErrors mode="Off" />
  </system.web>
  <system.webServer>
    <handlers>
      <add name="OneScript" path="*.os" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="File" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
      <add name="OneScript32" path="*.os" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="File" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
    </handlers>
        <defaultDocument>
            <files>
                <add value="index.os" />
            </files>
        </defaultDocument>
   </system.webServer>
  <appSettings>
    <add key="CachingEnabled" value="true" />
    <add key="commonModulesPath" value="~/CommonModules/" />
    <add key="MarkdigMarkdownProcessor" value="attachAssembly" />
    <add key="YamlDotNetProcessor" value="attachAssembly" />
    <add key="sql" value="attachAssembly" />
    <add key="WebBackgroundJobs" value="attachAssembly" />
    <add key="HttpMeans" value="attachAssembly" />
    <add key="maxThreads" value="20" />
    <add key="LogToPath" value="~/db/" />
  </appSettings>
</configuration>

Настройки для использования интегрированного пула:

<configuration>
  <system.web>
    <customErrors mode="Off" />
  </system.web>
  <system.webServer>
    <handlers>
	<add verb="*" path="*.os" type="OneScript.ASPNETHandler.ASPNETHandler" name="ASPNETHandler" />
    </handlers>
        <defaultDocument>
            <files>
                <add value="index.os" />
            </files>
        </defaultDocument>
   </system.webServer>
  <appSettings>
    <add key="CachingEnabled" value="true" />
    <add key="commonModulesPath" value="~/CommonModules/" />
    <add key="MarkdigMarkdownProcessor" value="attachAssembly" />
    <add key="YamlDotNetProcessor" value="attachAssembly" />
    <add key="sql" value="attachAssembly" />
    <add key="WebBackgroundJobs" value="attachAssembly" />
    <add key="HttpMeans" value="attachAssembly" />
    <add key="maxThreads" value="20" />
    <add key="LogToPath" value="~/db/" />
  </appSettings>
</configuration>

Также, наше приложение содержит скрипты do.os, ep.os, go.os, ec.os и epr.os, которые вызываются локальной 1С:Предприятие для обновления сведений о номенклатуре, а также получения и удаления заказов. Для того, чтобы эти сервисы были недоступны для сторонних людей, переименуйте эти файлы, добавив после букв какую-либо случайную строку, к примеру строковое представление GUID. Таким образом, после переименования, имена этих файлов будут соответственно: do123.os, ep123.os, go123.os etc.
Демонстрационная конфигурация имеет константу "СуффиксСтраницОбмена", значение которой, нужно установить идентичным тому, что Вы использовали для переименования файлов.
После внесения изменений, при помощи проводника Windows, подключаемся к нашему сайту по протоколу ftp. Для этого, в строке адреса вводим строку следующего вида: ftp://UrlМоегоСайта. В моем случае, строка имеет вид: ftp://yepcart.somee.com.
В появившемся диалоговом окне вводим учетные данные, которые Вы создали в процессе регистрации:

В открывшемся окне, переходим в папку www.МойПоддомен.somee.com. В моем случае- это www.yepcart.somee.com.

При помощи Ctrl+A, Ctrl+C, Ctrl+V копируем файлы приложения из локальной папки в папку на хостинге.

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

На этом, развертывание приложения можно считать законченным.

Заключение
Надеюсь, что настоящая статья поможет вам в тестировании ваших web-приложений OneScript, а также в решении бизнес-задач.
P.S.
Обратите внимание, что используемый план предполагает автоматическое удаление сайта, если он не используется (не имеет посетителей) в течении 30 дней (см. п. Keeping your site active в описании плана).

web onescript http

См. также

Групповая разработка (Git, хранилище) OneScript Программист Платформа 1С v8.3 Бесплатно (free)

Скрипт для работы с SonarQube и локальным репозиторием Git.<br> Цель проекта – возможность выполнить быструю проверку качества кода перед тем, как помещать доработки в рабочее хранилище. В Sonar и Git выгружается не вся конфигурация, а только объекты из заданного списка.<br> https://github.com/vkrivov/go/

02.07.2024    2930    vkrivov@yandex.ru    8    

18

DevOps и автоматизация разработки OneScript Системный администратор Программист Стажер Бесплатно (free)

Рассмотрим создание самоформирующейся документации через комментарии и соглашения: как это сделать и зачем, с описанием полного цикла от исходников конфигурации до странички в интернете

17.06.2024    4516    bayselonarrend    5    

61

OneScript Программист Стажер Бесплатно (free)

Поговорим про меню, спиннеры, прогресс-бары и прочие свистелки для CLI приложений на OneScript

20.05.2024    2637    bayselonarrend    18    

70

Групповая разработка (Git, хранилище) OneScript Системный администратор Программист Бесплатно (free)

Сегодня мы посмотрим на Github Actions - встроенный инструментарий Github для автоматизации рабочих процессов. Разберем, что это такое, зачем и причем тут OneScript.

25.03.2024    2265    bayselonarrend    3    

41

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    4500    kamisov    21    

63

OneScript Программист Бесплатно (free)

Думаете, на OneScript неудобно создавать сложные инфраструктурные приложения? Ошибаетесь. Благодаря фреймворку ОСень за последний год экосистема библиотек, упрощающих написание собственных приложений, существенно выросла. Расскажем о самых передовых технологиях OneScript. Спойлер: будет много рефлексии, мета-аннотаций, желудей, напильников и дубов с завязями.

21.11.2023    3981    NikitaIvanchenko    16    

48

Инструментарий разработчика Работа с интерфейсом OneScript Программист Россия Бесплатно (free)

Представленная библиотека позволяет создать многопоточный TCP сервер, к которому может одновременно подключиться множество TCP клиентов с удаленных компьютеров. Эти клиенты могут вызывать методы скриптов как на сервере, так и на других клиентах. Методы будут выполнены в контексте скрипта на удаленной машине. Возможна передача параметров в метод и получение результата. Для TCP клиента можно создать графический интерфейс с большим набором элементов управления, модальными диалоговыми окнами и с обработкой событий.

31.07.2023    2510    ahyahy    8    

32

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Программист Бесплатно (free)

Итак! Представим, что наступил момент, когда разработка через исходный код реализована на предприятии в полном объеме. Мы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширения, собираем релизы, проверяем код статическим анализом, в разработке царит гармония и мир. Красота! Но менеджерам этого мало, всегда хочется чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    5068    ardn    3    

27
Оставьте свое сообщение