在 ASP.NET 移动 Web 应用程序中的短信服务


作者:


Balamurali Balaji MVP

社区解决方案内容免责声明


微软公司和/或其相应的供应商进行关于适用性、 可靠性或准确性的信息和相关的图形包含本文所述的任何表示。 所有此类信息和相关的图形被提供"按原样",没有任何形式的担保。 微软和/或其相应的供应商特此不作出任何担保和与该信息有关的状况和相关的图形,包括所有暗示担保和条件对适销性、 适合特定用途,WORKMANLIKE投入、 标题和非侵权性。 您明确同意,在任何情况下 MICROSOFT 或其供应商应承担责任的任何直接、 间接、 惩罚性、 偶然、 特殊、 后果性损害或任何损害任何包括但不限于,使用中,损失数据或利润,而导致的数据或任何方式连接的使用或无法使用的信息和相关的图形包含本文所述,不论是基于合同、 民事侵权行为、 过失、 严格责任上或以其他方式,即使 MICROSOFT 或其供应商的任何已被建议赔偿的可能性。

概要


本文讨论了短信服务完整知识和用于 web 开发的工具基于 ASP.NET 中的移动应用程序。 它还负责在.NET 框架精简版中可用的 SMS 服务所需的组件。

原因注释


本文旨在阐明在 mobile.net 应用程序中使用短消息服务的详细信息。 开发人员会发现它有助于了解其应用程序中使用此服务背后的基本概念

抽象的批注


本文讨论了有关 SMS 和详述其功能。 此外,处理各种不同的方式使用 SMS 的启用.net 应用程序。

介绍


SMS – 短消息服务如今是相当开发社区中的热门话题字。 说到.NET 环境中,开发人员可以真正向其发送和接收 SMS 从其 web 应用程序中找到解决办法。 大多数的 web 应用程序具有 SMS 功能内置启用用户进行即时通信的手机号码向发送简单的文本。 速度、 精度和提高工作效率,为 SMS 是各种无线服务之间最成功的服务之一。

SMS 功能


SMS 是能够提供很多数据服务到无线设备,包括语音邮件通知、 传真服务、 铃声、 游戏等。SMS 还可能 TM (短信服务)。 无线短信是最多 256 个字符可以向移动设备发送一个简短的字符串。 虽然支持字母数字编号的页导航设备最初使用文本消息服务,它具有还手机中找到一个地方。许多移动无线运营商有使开发人员可以获取到知识源的 SMS 和它的功能非常困难。 他们使用的 SMS 消息进行处理的原因有很多不同的模式。 原因之一是涉及极为消息本身的成本。 一些运营商制定的 SMS 可以发送或接收 SMS 使用 TCP/IP 的 API。 有些使用简单网络寻呼协议 (SNPP)、 无线通信传输协议 (WCTP) 和短消息等对等方 (SMPP) 等协议。 一些运营商现在公开简单邮件传输协议 (SMTP),电子邮件接口发送短消息。 在这种情况下,设备的电话号码或呼叫程序标识号和无线运营商的特殊域,将为电子邮件地址。 例如,与依赖服务电话将有 3135551212@mobile 的电子邮件地址。Reliance.net。

对 SMS 集成与任何应用程序的要求


使用 SMS 功能的先决条件是 SMS 网关。 您可以通过 web 界面或 API 有权使用移动网络 (服务提供商),SMS。 他们将向您提供一套 Api,使用他们的 SMS 服务器。 再次,这涉及到用于发送消息和提供服务的成本。 另外,有几个手机网站,您可以发送和接收 SMS 使用他们的网站。 您可以开发 ASP.NET 可以过帐到为您的用户提供短信服务网站中的网页。 在印度,、、、 是几个网站提供的 SMS 和相关的服务的企业和高卷 SMSC 链接使用 SMPP (短消息点对点) 的通信协议。SMSC (短消息服务中心) 规定了在 GSM 网络移动电话与邮件传输。 这包括不仅短文本消息,但也传真、 语音或电子邮件。 它提供的消息,暂时将它们存储在相应收件人目前不可用,就会完成充电的情况下。 没有至少一个 SMSC 每个网络。第三种方法考虑订阅了 SMS web 服务使用它您可以发送或接收应用程序中的 SMS。 转到(G)

GPRS


GPRS (通用分组无线业务) 提供互联网电子邮件服务的使用,可以提供短信服务。 这是最简单的形式,提供短信服务在您的应用程序。GPRS 便于连续无线数据网络连接和访问您最喜欢的信息和娱乐服务。 它允许用于发送和接收数据通过互联网 IP 协议基于网络的手机。 SMS、 其他服务协议,如 WAP,MMS,SMS,除了 Java 和电脑拨号 (例如,Internet 和电子邮件) 也支持 GPRS。与 SMS 网关服务,互联网电子服务商店使用邮箱服务的消息。 实际上存储电子邮件和用户在他们的手机上收到一条通知,然后可以检索完整的电子邮件通过拨入收集、 转发它,等等。 网关服务提供无线电子邮件平台,它只是将 SMTP (Internet 电子邮件协议) 中的信息转换为 SMS 并将发送到 SMS 中心。 大部分时间,在接收到新电子邮件,互联网电子邮件用户得不通知他们手机上。 他们需要定期拨来检查他们的邮箱。 但是,我们可以提供了通知机制,例如,SMS 或 GPRS,链接互联网电子邮件系统,当接收到新电子邮件时,可以通知用户。

.NET 应用程序中的短信服务


也称为与 ASP.NET 移动控件的 microsoft 移动 Internet Toolkit (MMIT) 是.NET Framework 并使开发人员能够编写针对多个设备,如手机和 Pda 的移动 Web 应用程序的 ASP.NET 的延伸。 MMIT 使开发人员可以专注于应用程序逻辑和保留给运行时用户界面呈现。 若要安装 MMIT,您需要有 Microsoft.NET Framework 1.0 或更高版本。 因为 MMIT 是 ASP.NET 的扩展,您还必须正在运行 IIS。 移动应用程序有两种类型: 基于 web 和基于设备。  Web 基于移动服务器,通常的 Web 服务器上运行的应用程序,并通过提供互联网电子邮件的互联网和短消息服务通过移动设备访问。  设备特定的移动应用程序是独立运行的应用程序在设备上本身,带有或不带上网。 对于此类型的应用程序,Microsoft 提供的.NET Framework 的缩微版本,.NET 框架精简版 (.NET CF)。

在.NET CF 应用程序中的短信服务


.NET 框架精简版的应用程序面向 Pocket Pc,智能手机,Pda 等设备。 它基于 Windows CE。 核心组的智能设备系统的功能和应用程序在 COREDLL 中可用。DLL 中。 它还具有以下 dll: AYGShell.dll – Pocket PC 外壳 functionsCommCtrl.dll – 通用控制 libWinSock.dll – Windows SocketsPhone.dll – 高级别电话 controlSMS.dll – SMS 消息传递 API 使用 P/Invoke 支持.NET CF 调用 Win32 中可用在非托管 dll 中的 API 函数,我们可以从 C# 或 VB.NET CF 应用程序发送 SMS。 SmsOpen 函数将打开 SMS 消息传递组件。HRESULT SmsOpen (const LPCTSTR ptsMessageProtocol,const dword 值 dwMessageModes,SMS_HANDLE * 常量 psmshHandle,句柄 * 常量 phMessageAvailableEvent);ptsMessageProtocol 是一个字符串,表示用于该 SMS 协议。 dwMessageModes 指定是否希望在发送或接收模式。 psmshHandle 的 SMS 会话句柄指向的指针,该函数将返回正确的情况下才有效。 phMessageAvailableEvent 是一个 Win32 句柄,可用于确定何时可供读取下一条消息的句柄。 System.Runtime.InteropServices 命名空间中使用该 DllImport 特性,我们可以在我们的代码中声明的函数。
 [DllImport("sms.dll")]   private static extern IntPtr SmsOpen(String ptsMessageProtocol,     IntPtr dwMessageModes, ref IntPtr psmshHandle, IntPtr     phMessageAvailableEvent); 
SmsSendMessage 函数将消息发送到移动电话号码。 HRESULT SmsSendMessage (const SMS_HANDLE smshHandle,const SMS_ADDRESS * 常量 psmsaSMSCAddress,const SMS_ADDRESS * 常量 psmsaDestinationAddress,const SYSTEMTIME * const pstValidityPeriod,const 字节 * pbData 常量、 常量的 dword 值 dwDataSize,const 字节 *const pbProviderSpecificData,const dword 值 dwProviderSpecificDataSize,const SMS_DATA_ENCODING smsdeDataEncoding,const dword 值 dwOptions,SMS_MESSAGE_ID * psmsmidMessageID);smshHandle 是 SmsOpen 在 psmshHandle 返回的句柄。 psmsaSMSCAddress 是可选参数,指定即 SMS 邮件中心使用。 如果使用了 NULL,则将使用用户的默认值 SMSMC。 psmsaDestinationAddress 是邮件的传递位置。 pstValidityPeriod 将从标准的 SYSTEMTIME 结构,因为它是过去的发送 SMS 的消息仍被视为有效的时间量。 pbData 是消息的数据部分的字节表示形式。 这可以为 NULL。 dwDataSize 是以字节为单位的消息的数据部分的大小。 pbProviderSpecificData 是允许 SMS 正常传输所必需的某些提供程序的其他信息。 dwProviderSpecificDataSize 是以字节为单位的前面提到的字段的大小。 smsdeDataEncoding 是一个位于上述 SMS_DATA_ENCODING 枚举的选项。 dwOptions 是一后会 SMS 或将允许它可以重新传送路由器便放弃了之前的 (当前) 两个标志。psmsmidMessageID 将非空如果此函数成功返回。 在托管代码中,我们将其作为
 [DllImport("sms.dll")]private static extern IntPtr SmsSendMessage(IntPtr smshHandle, IntPtr  psmsaSMSCAddress, IntPtr psmsaDestinationAddress, IntPtr  pstValidityPeriod, byte[] pbData, IntPtr dwDataSize, byte[]  pbProviderSpecificData, IntPtr dwProviderSpecificDataSize,  SMS_DATA_ENCODING smsdeDataEncoding, IntPtr dwOptions,  IntPtr  psmsmidMessageID); 
SmsClose 函数将关闭 SMS 消息服务请求。 HRESULT SmsClose (const SMS_HANDLE oCommandBarPopup);
 In our code we declare it as [DllImport("sms.dll")]   private static extern IntPtr SmsClose(IntPtr smshHandle); 
 

在 ASP.NET 移动 Web 应用程序中的短信服务


在此示例中,我使用 www.webservicex.com 从已存在的 web 服务。 它提供了 Web 服务定义语言 (WSDL) 链接将短消息发送。 必须在 CF.NET 应用程序中添加对以下 web 服务的 web 引用: http://www.webservicex.net/SendSMS.asmx
 Private void SendMessage(string MobileNumber, string  FromEmailAddress, string  Message){localhost.SendSMS smsService = New localhost.SendSMS(); try{            bool result = smsService.SendMessage(someMobileNumber, myemaidid, myMessage);             if (result == True)                MessageBox.Show("The message was sent", "SMS Messaging");            else                MessageBox.Show("The message was not sent", "SMS Messaging");    catch (SoapException ex)        MessageBox.Show("An exception occured.  " & ex.Detail.InnerText, "SMS Messaging");} }
 

结论


开发提供短信服务的应用程序不是一个简单的任务。 系统开发.NET 环境中的移动应用程序中,您必须安装适当的工具和组件。 如果您正在开发移动基于 SMS 服务、 需要依赖 SMS 网关的软件组件或您可以使用此文件使用它们的现有 web 服务。 没有提供 SMS 功能的应用程序使用 AT 命令其中提到的各种不同的移动设备集的另一个最佳方法。 这不是本文讨论的。如果您是开发设备基于 SMS 服务应用程序、 可以转的.NET 框架精简版的发运与 Visual Studio.NET 2003年/2005年或可以从 internet 下载它。 这里同样,大部分开发 SMS 服务所需的 dll 组件都可以使用 Windows CE 4.2/5.0 SDK 工具包,与.NET CF.希望您喜欢阅读这篇文章不可用。 如果您有任何意见或建议,请随时与我联系。