Настройка соединения с базой данных
В конфигурации утилиты PMTMessageService.exe.config необходимы строка соединения с базой данных и пароль доступа на сайт http://sms16.ru в зашифрованном виде.
В файле перевода INTIS.SmsDelivery.map нужно прописать, какие параметры будут зашифрованы, кроме строки соединения:
Authorization=Авторизация
Authorization.Password=Пароль*EncodedString
Authorization.UserName=Логин
После этого запустить утилиту ToolSetup. В открывшемся окне на вкладке Авторизация указать пароль для доступа на сайт http://sms16.ru, на вкладке Database – выбрать SQL-сервер и базу данных, которая будет обслуживаться PMTMessageService, указать имя пользователя и пароль и нажать ОК. Зашифрованные пароль и строка соединения появятся в файле INTIS.SmsDelivery.ini. Зашифрованные значения необходимо скопировать и вставить для соотвествующих параметров конфигурации службы PMTMessageService (см. ниже).
Рисунок 8.1. Утилита ToolSetup
Конфигурация службы рассылки SMS-сообщений. Файл PMTMessageService.exe.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="HostService"
type="PMT.Messaging.WindowsService.HostServiceSection, PMTMessageService"/>
<section name="MessageService1"
type="PMT.Messaging.Common.MessageServiceSection, Messages"/>
<section name="SMSCollector"
type="INTIS.SmsDelivery.PMT.SMS_MessageCollector, INTIS.SmsDelivery"/>
<section name="SMSSender"
type="INTIS.SmsDelivery.PMT.SMS_Sender, INTIS.SmsDelivery"/>
</configSections>
<!-- ExternalManagmentInterfaceUri - адрес, по которому будет доступна служба; "localhost:9919" необходимо заменить на требуемый адрес, можно указать любой незанятый открытый порт. Протокол "net.tcp" должен быть указан обязательно. -->
<HostService StartImmediately="true"
ServiceCount="1"
ExternalManagmentInterfaceUri="net.tcp://localhost:9919/PMT_MessageService"/>
<!--В параметре Description можно задать произвольное описание службы -->
<MessageService1 MessageCollectorSection="SMSCollector"
MessageSenderSection="SMSSender"
Name="PMTSMSMessages"
Description="Сервис отправки СМС из БД Медиалог"
Cooldown="10"/>
<!-- Login, Password - параметры доступа на сайт рассылки сообщений http://sms16.ru/
Пароль в зашифрованном виде необходимо скопировать из файла INTIS.SmsDelivery.ini, предварительно настроив шифрование пароля в файле INTIS.SmsDelivery.map (см. выше)
IsTransliterationRequired - для включения транслитерации SMS прописать значение "true"
BaseURL - адрес сервиса отправки SMS -->
<SMSSender Login="SENDERLOGIN"
Password="1234E1C2D3BC4C7919ED8B892"/
IsTransliterationRequired="true"
BaseURL="https://xml.sms16.ru/xml">
<!-- Параметр ConnectionString - строка соединения с базой данных в зашифрованном виде. Строку необходимо скопировать из файла INTIS.SmsDelivery.ini, предварительно настроив соединение с помощью утилиты ToolSetup.
ExpiredPeriod — если с планируемой даты отправки прошло заданное время и сообщение не было отправлено, оно считается просроченным и попыток его отправить больше не осуществляется. Период задается в формате дни.часы:минуты:секунды.
SenderName — произвольное имя отправителя.
ResendTimeOut - интервал в секундах, через который будут повторно отправлены SMS-уведомление, отправка которых не удалась по "некритичным" причинам (например, нехватка денег на счете, неверно указанный "SenderName" и т.п.)
-->
<SMSCollector
ConnectionString="366651019180CC89C9E39D8560C2FD573C3DDD3B5671627A8EFEDE70A4FF43A474037905279D96DA9287C4EC9A4AEDCD61176795204F7E7766C4C5DE61FCB76FA46514347733C597C8C0BDDEA5BD46EFD4333D7298616A7F76348DF4C47CE0D30DE5305D505F0399C4FA9481C2AFAC12E6CE7C0D67B073777C747189E3C967EA"
ExpiredPeriod="1.1:00:00"
SenderName="SENDERNAME"
ResendTimeOut="300"
/>
</configuration>
Настройки службы могут быть изменены после ее установки. Чтобы изменения вступили в силу, необходимо перезапустить службу.
Конфигурация службы ServiceGUI. Файл ServiceGUI.exe.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_IExternalManager" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" listenBacklog="10"
maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
maxReceivedMessageSize="65536">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:00:05"
enabled="false" />
<security mode="Transport">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"></transport>
<message clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
<client>
<!-- address - адрес, по которому доступна служба; "localhost:9919" необходимо заменить на адрес, указанный в файле PMTMessageService.exe.config -->
<endpoint address="net.tcp://localhost:9919/PMT_MessageService/svc"
binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IExternalManager"
contract="IExternalManager" name="NetTcpBinding_IExternalManager">
<identity>
<servicePrincipalName value="host/m-srv-rpl.MEDSI1.local" />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>