先定义NotificationService 的Config文件
<?xml version="1.0" encoding="UTF-8"?>
<NotificationServicesInstance xmlns="http://www.microsoft.com/MicrosoftNotificationServices/ConfigurationFileSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.microsoft.com/MicrosoftNotificationServices/ConfigurationFileSchema
C:\PROGRA~1\MI02CD~1\v2.0.3008.0\XMLSCH~1\ConfigurationFileSchema.xsd">
<!-- 系统用参数 -->
<ParameterDefaults>
<Parameter>
<Name>SqlServerName</Name>
<Value>%SqlServerName%</Value>
</Parameter>
<Parameter>
<Name>InstanceName</Name>
<Value>%InstanceName%</Value>
</Parameter>
<Parameter>
<Name>ApplicationName</Name>
<Value>%AppName%</Value>
</Parameter>
<Parameter>
<Name>AppHomePath</Name>
<Value>C:\NotificationApp\NSSolution\ATiPDefinition</Value>
</Parameter>
</ParameterDefaults>
<!-- 实例名称 -->
<InstanceName>%InstanceName%</InstanceName>
<!-- 数据库名 -->
<SqlServerSystem>%SqlServerName%</SqlServerSystem>
<!-- 应用程序定义 -->
<Applications>
<Application>
<ApplicationName>%ApplicationName%</ApplicationName>
<BaseDirectoryPath>%AppHomePath%</BaseDirectoryPath>
<ApplicationDefinitionFilePath>ATiP_ADF.xml</ApplicationDefinitionFilePath>
<Parameters>
<Parameter>
<Name>AppRootPath</Name>
<Value>%AppHomePath%</Value>
</Parameter>
<Parameter>
<Name>AppServerName</Name>
<Value>%SqlServerName%</Value>
</Parameter>
</Parameters>
</Application>
</Applications>
<!-- 通信通道 -->
<Protocols>
<Protocol>
<ProtocolName>SMS</ProtocolName>
<ClassName>XZSoftware.Project.MessageSubscribe.SMChannelLib.SMChannel</ClassName>
<AssemblyName>c:\NotificationApp\NSSolution\SMChannelLib\bin\debug\XZSoftware.Project.MessageSubscribe.SMChannelLib.dll</AssemblyName>
</Protocol>
<Protocol>
<ProtocolName>WAPPush</ProtocolName>
<ClassName>XZSoftware.Project.MessageSubscribe.WAPPushChannelLib.WAPPushChannel</ClassName>
<AssemblyName>C:\NotificationApp\NSSolution\WAPPushChannelLib\bin\debug\XZSoftware.Project.MessageSubscribe.WAPPushChannelLib.dll</AssemblyName>
</Protocol>
</Protocols>
<!-- 提交通道定义 -->
<DeliveryChannels>
<DeliveryChannel>
<!-- DeliveryChannelName的名字将在程序中体现 -->
<DeliveryChannelName>MailChannel</DeliveryChannelName>
<ProtocolName>SMTP</ProtocolName>
<Arguments>
<Argument>
<Name>SmtpServer</Name>
<Value>nmcexch</Value>
</Argument>
<Argument>
<Name>BodyEncoding</Name>
<Value>utf-8</Value>
</Argument>
</Arguments>
</DeliveryChannel>
<DeliveryChannel>
<DeliveryChannelName>SMSChannel</DeliveryChannelName>
<ProtocolName>SMS</ProtocolName>
</DeliveryChannel>
<DeliveryChannel>
<DeliveryChannelName>WAPPushChannel</DeliveryChannelName>
<ProtocolName>WAPPush</ProtocolName>
</DeliveryChannel>
</DeliveryChannels>
</NotificationServicesInstance>
<NotificationServicesInstance xmlns="http://www.microsoft.com/MicrosoftNotificationServices/ConfigurationFileSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.microsoft.com/MicrosoftNotificationServices/ConfigurationFileSchema
C:\PROGRA~1\MI02CD~1\v2.0.3008.0\XMLSCH~1\ConfigurationFileSchema.xsd">
<!-- 系统用参数 -->
<ParameterDefaults>
<Parameter>
<Name>SqlServerName</Name>
<Value>%SqlServerName%</Value>
</Parameter>
<Parameter>
<Name>InstanceName</Name>
<Value>%InstanceName%</Value>
</Parameter>
<Parameter>
<Name>ApplicationName</Name>
<Value>%AppName%</Value>
</Parameter>
<Parameter>
<Name>AppHomePath</Name>
<Value>C:\NotificationApp\NSSolution\ATiPDefinition</Value>
</Parameter>
</ParameterDefaults>
<!-- 实例名称 -->
<InstanceName>%InstanceName%</InstanceName>
<!-- 数据库名 -->
<SqlServerSystem>%SqlServerName%</SqlServerSystem>
<!-- 应用程序定义 -->
<Applications>
<Application>
<ApplicationName>%ApplicationName%</ApplicationName>
<BaseDirectoryPath>%AppHomePath%</BaseDirectoryPath>
<ApplicationDefinitionFilePath>ATiP_ADF.xml</ApplicationDefinitionFilePath>
<Parameters>
<Parameter>
<Name>AppRootPath</Name>
<Value>%AppHomePath%</Value>
</Parameter>
<Parameter>
<Name>AppServerName</Name>
<Value>%SqlServerName%</Value>
</Parameter>
</Parameters>
</Application>
</Applications>
<!-- 通信通道 -->
<Protocols>
<Protocol>
<ProtocolName>SMS</ProtocolName>
<ClassName>XZSoftware.Project.MessageSubscribe.SMChannelLib.SMChannel</ClassName>
<AssemblyName>c:\NotificationApp\NSSolution\SMChannelLib\bin\debug\XZSoftware.Project.MessageSubscribe.SMChannelLib.dll</AssemblyName>
</Protocol>
<Protocol>
<ProtocolName>WAPPush</ProtocolName>
<ClassName>XZSoftware.Project.MessageSubscribe.WAPPushChannelLib.WAPPushChannel</ClassName>
<AssemblyName>C:\NotificationApp\NSSolution\WAPPushChannelLib\bin\debug\XZSoftware.Project.MessageSubscribe.WAPPushChannelLib.dll</AssemblyName>
</Protocol>
</Protocols>
<!-- 提交通道定义 -->
<DeliveryChannels>
<DeliveryChannel>
<!-- DeliveryChannelName的名字将在程序中体现 -->
<DeliveryChannelName>MailChannel</DeliveryChannelName>
<ProtocolName>SMTP</ProtocolName>
<Arguments>
<Argument>
<Name>SmtpServer</Name>
<Value>nmcexch</Value>
</Argument>
<Argument>
<Name>BodyEncoding</Name>
<Value>utf-8</Value>
</Argument>
</Arguments>
</DeliveryChannel>
<DeliveryChannel>
<DeliveryChannelName>SMSChannel</DeliveryChannelName>
<ProtocolName>SMS</ProtocolName>
</DeliveryChannel>
<DeliveryChannel>
<DeliveryChannelName>WAPPushChannel</DeliveryChannelName>
<ProtocolName>WAPPush</ProtocolName>
</DeliveryChannel>
</DeliveryChannels>
</NotificationServicesInstance>
要先为消息采集创建一个中间、用于记录采集信息的表。
CREATE TABLE [T_Action_History] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[symbol] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[actionTime] [datetime] NOT NULL CONSTRAINT [DF_T_Action_History_actionTime] DEFAULT (getdate()),
[arg1] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[arg2] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[arg3] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[arg4] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[arg5] [nvarchar] (3000) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
[id] [int] IDENTITY (1, 1) NOT NULL ,
[symbol] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[actionTime] [datetime] NOT NULL CONSTRAINT [DF_T_Action_History_actionTime] DEFAULT (getdate()),
[arg1] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[arg2] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[arg3] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[arg4] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[arg5] [nvarchar] (3000) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
定义ADF
<?xml version="1.0" encoding="UTF-8"?>
<Application xmlns="http://www.microsoft.com/MicrosoftNotificationServices/ApplicationDefinitionFileSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.microsoft.com/MicrosoftNotificationServices/ApplicationDefinitionFileSchema
C:\PROGRA~1\MI02CD~1\v2.0.3008.0\XMLSCH~1\ApplicationDefinitionFileSchema.xsd">
<!--
1.添加Event定义
EC = EventClass
-->
<EventClasses>
<EventClass>
<EventClassName>MessageEC</EventClassName>
<Schema>
<Field>
<FieldName>Symbol</FieldName>
<FieldType>nvarchar(20)</FieldType>
</Field>
<Field>
<FieldName>ActionID</FieldName>
<FieldType>nvarchar(50)</FieldType>
</Field>
<Field>
<FieldName>Content</FieldName>
<FieldType>nvarchar(4000)</FieldType>
</Field>
<Field>
<FieldName>Creator</FieldName>
<FieldType>nvarchar(50)</FieldType>
</Field>
<Field>
<FieldName>Source</FieldName>
<FieldType>nvarchar(100)</FieldType>
</Field>
<Field>
<FieldName>CreateTime</FieldName>
<FieldType>DateTime</FieldType>
</Field>
</Schema>
<IndexSqlSchema>
<SqlStatement>
Create Index MessageEC_index on MessageEC( symbol )
</SqlStatement>
</IndexSqlSchema>
</EventClass>
</EventClasses>
<!--
2.添加Subscription定义
SC = SubscriptionClass
-->
<SubscriptionClasses>
<SubscriptionClass>
<SubscriptionClassName>MessageSC</SubscriptionClassName>
<Schema>
<Field>
<FieldName>DeviceName</FieldName>
<FieldType>nvarchar(20)</FieldType>
</Field>
<Field>
<FieldName>SubscriberLocale</FieldName>
<FieldType>nvarchar(20)</FieldType>
</Field>
<Field>
<FieldName>Symbol</FieldName>
<FieldType>nvarchar(20)</FieldType>
</Field>
</Schema>
<!--
EventRule定义
ER = EventRule
NCER = NotificationClass EventRule
-->
<EventRules>
<EventRule>
<RuleName>MessageNCER</RuleName>
<Action>
select dbo.MessageNCNotify(s.SubscriberId,s.DeviceName,s.SubscriberLocale,e.Symbol,e.ActionID,e.Content,e.Creator,e.Source)
FROM MessageSC s , MessageEC e
WHERE s.Symbol=e.Symbol
</Action>
<EventClassName>MessageEC</EventClassName>
</EventRule>
</EventRules>
</SubscriptionClass>
</SubscriptionClasses>
<!--
3.定义Notification
NC = NotificationClass
-->
<NotificationClasses>
<NotificationClass>
<NotificationClassName>MessageNC</NotificationClassName>
<Schema>
<Fields>
<Field>
<FieldName>Symbol</FieldName>
<FieldType>nvarchar(20)</FieldType>
</Field>
<Field>
<FieldName>ActionID</FieldName>
<FieldType>nvarchar(50)</FieldType>
</Field>
<Field>
<FieldName>Content</FieldName>
<FieldType>nvarchar(4000)</FieldType>
</Field>
<Field>
<FieldName>Creator</FieldName>
<FieldType>nvarchar(50)</FieldType>
</Field>
<
<Application xmlns="http://www.microsoft.com/MicrosoftNotificationServices/ApplicationDefinitionFileSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.microsoft.com/MicrosoftNotificationServices/ApplicationDefinitionFileSchema
C:\PROGRA~1\MI02CD~1\v2.0.3008.0\XMLSCH~1\ApplicationDefinitionFileSchema.xsd">
<!--
1.添加Event定义
EC = EventClass
-->
<EventClasses>
<EventClass>
<EventClassName>MessageEC</EventClassName>
<Schema>
<Field>
<FieldName>Symbol</FieldName>
<FieldType>nvarchar(20)</FieldType>
</Field>
<Field>
<FieldName>ActionID</FieldName>
<FieldType>nvarchar(50)</FieldType>
</Field>
<Field>
<FieldName>Content</FieldName>
<FieldType>nvarchar(4000)</FieldType>
</Field>
<Field>
<FieldName>Creator</FieldName>
<FieldType>nvarchar(50)</FieldType>
</Field>
<Field>
<FieldName>Source</FieldName>
<FieldType>nvarchar(100)</FieldType>
</Field>
<Field>
<FieldName>CreateTime</FieldName>
<FieldType>DateTime</FieldType>
</Field>
</Schema>
<IndexSqlSchema>
<SqlStatement>
Create Index MessageEC_index on MessageEC( symbol )
</SqlStatement>
</IndexSqlSchema>
</EventClass>
</EventClasses>
<!--
2.添加Subscription定义
SC = SubscriptionClass
-->
<SubscriptionClasses>
<SubscriptionClass>
<SubscriptionClassName>MessageSC</SubscriptionClassName>
<Schema>
<Field>
<FieldName>DeviceName</FieldName>
<FieldType>nvarchar(20)</FieldType>
</Field>
<Field>
<FieldName>SubscriberLocale</FieldName>
<FieldType>nvarchar(20)</FieldType>
</Field>
<Field>
<FieldName>Symbol</FieldName>
<FieldType>nvarchar(20)</FieldType>
</Field>
</Schema>
<!--
EventRule定义
ER = EventRule
NCER = NotificationClass EventRule
-->
<EventRules>
<EventRule>
<RuleName>MessageNCER</RuleName>
<Action>
select dbo.MessageNCNotify(s.SubscriberId,s.DeviceName,s.SubscriberLocale,e.Symbol,e.ActionID,e.Content,e.Creator,e.Source)
FROM MessageSC s , MessageEC e
WHERE s.Symbol=e.Symbol
</Action>
<EventClassName>MessageEC</EventClassName>
</EventRule>
</EventRules>
</SubscriptionClass>
</SubscriptionClasses>
<!--
3.定义Notification
NC = NotificationClass
-->
<NotificationClasses>
<NotificationClass>
<NotificationClassName>MessageNC</NotificationClassName>
<Schema>
<Fields>
<Field>
<FieldName>Symbol</FieldName>
<FieldType>nvarchar(20)</FieldType>
</Field>
<Field>
<FieldName>ActionID</FieldName>
<FieldType>nvarchar(50)</FieldType>
</Field>
<Field>
<FieldName>Content</FieldName>
<FieldType>nvarchar(4000)</FieldType>
</Field>
<Field>
<FieldName>Creator</FieldName>
<FieldType>nvarchar(50)</FieldType>
</Field>
<