(((Данная статья относится к новому аудиту)))
Аудит
Что такое аудит можно узнать в этой статье.
Сервис Аудита
Отдельный сервис Аудита предоставляет те же возможности, что и встроенный в приложение аудит, но он вынесен в виде отдельного Windows-сервиса. (данный сервис доработан в версии после 02.10.2013)
Подключение к сервису аудита
Для подключения к сервису необходимо:
- Добавить в файл конфигурации приложения ключ
AuditWinServiceUrl
, определяющий url, где располагается сервис.
<add key="AuditWinServiceUrl" value="http://localhost:8733/AuditWcfService/" />
Выше указан адрес для примера. В реальной ситуации адрес необходимо брать из конфигурационного файла сервиса:
<services>
<service name="ICSSoft.STORMNET.Business.AuditWcfServiceLibrary.AuditWcfService" behaviorConfiguration="MyBehavior">
<endpoint address="" binding="basicHttpBinding" contract="ICSSoft.STORMNET.Business.AuditWcfServiceLibrary.IAuditWcfService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8733/AuditWcfService/"/>
</baseAddresses>
</host>
</service>
</services>
- Подготовить сборку с объектами, аудит которых будет производиться. Сборка нужна только для работы метода WriteCommonAuditOperation, остальные методы записи аудита (в том числе метод записи аудита для собственных объектов и операций) не требуют сборок с объектами.
(((
)))
Подготовленную сборку необходимо скопировать в папку “ObjectAssemblies”, расположенную рядом с сервисом аудита.
- Сконфигурировать настройки по работе с базой данных (есть отдельная статья, определяющая механизм определения настроек соединения с БД при аудите).
Для этого нужно в конфиг-файле приложения указать следующие настройки (данные настройки приведены для примера и могут отличаться в конкретном приложении):
<add key="IsAuditDatabaseLocal" value="False" />
<add key="AppNameForAudit" value="TestFS" />
<add key="AuditConnectionStringName" value="AuditConnString" />
Если IsAuditDatabaseLocal = false
, то в конфиге сервиса будет искаться строка подключения, задаваемая параметром AuditConnectionStringName
(то есть в данном случае - “AuditConnString
”).
<connectionStrings>
<add name="AuditConnString" connectionString="SERVER=.;Trusted_connection=yes;DATABASE=AuditEtaloneDB;" />
</connectionStrings>
Тип сервиса данных всегда ищется в конфиг-файле по ключу <esc><</esc>Имя строки соединения<esc>></esc>_DSType
(если такой записи нет, то берётся сервис данных, указанных в настройке “DefaultDSType
”, а если и это не помогло, то используется сервис данных, указанный в DataServiceProvider.DataService
).
<appSettings>
<add key="AuditConnString_DSType" value="ICSSoft.STORMNET.Business.MSSQLDataService, ICSSoft.STORMNET.Business.MSSQLDataService"/>
<add key="DefaultDSType" value="ICSSoft.STORMNET.Business.MSSQLDataService, ICSSoft.STORMNET.Business.MSSQLDataService"/>
<add key="DataServiceType" value="ICSSoft.STORMNET.Business.MSSQLDataService, ICSSoft.STORMNET.Business.MSSQLDataService" />
<add key="CustomizationStrings" value="SERVER=.;Trusted_connection=yes;DATABASE=qwerty;" />
</appSettings>
Если IsAuditDatabaseLocal = true
, то получение имени имени строки соединения происходит по особой схеме: имя ищется среди AuditDSSettings. Имя сервиса по умолчанию определено как <esc><</esc>AppNameForAudit<esc>></esc>_<esc><</esc>AuditConnectionStringName<esc>></esc>
(в нашем случае - это “TestFS_AuditConnString
”).
<connectionStrings>
<add name="TestFS_AuditConnString" connectionString="SERVER=.;Trusted_connection=yes;DATABASE=AuditEtaloneDB;" />
</connectionStrings>