• Silverlight中调用WebService发送邮件测试实例


    Silverlight能够构建强大的企业级应用程序,关键和Silverlight2.0强大数据通信是分不开的,包括SOAP服务的访问,RESTful服务的访问,以及基于Http协议和Socket通信等。在Silverlight中一些基本的功能都适用于Http和Https通信。

    其中主要特点:

         A:始终允许同域调用

         B:如果正确配置负载有Web服务的Web服务器,可以跨域访问

         C:仅仅支持Get和Post谓词

         D:所有请求都是异步的-这也是SL用户体验最为吸引人一个特点

         E:只有"00确定"和"404为找到"状态可用

    我们看到B支持跨域访问,Silverlight默认情况是请求的URL进行严格限制的,只允许访问同一子目录下的URL资源。禁止跨域访问的,例如当前我们在本地的Web程序中引用新浪网提供天气预报服务http://sina.com/service.asmx,默认情况下会抛出一个异常.

    这个异常抛出的主要原因是在完成事件Complete引用的参数为空,解决方案:在需要被访问的站点根目录下添加两个策略文件-两个XML文件clientaccesspolicy.xml,crossdomain.xml即可,注意两个XML文件最好使用默认的UTF-8编码格式,如果修改在程序中极易出现错误,且不容易发现.主要是因为请求都是异步的发送客户端的数据格式XML编码就是UTF-8格式。

    这是昨天遇到一个问题,下面做一个简单的在Silverlight程序中调用本地WebService(非跨域)实例.

    (1)创建WebService并实现WebService:-

    Code

    (2)Silverlight中引用并调用

    选中SL项目右击弹出的菜单选择  添加服务引用,SL应用程序中会自动生成一个文件夹

    当添加引用后,自动添加SL程序中对应该服务的本地代理类 ,代理类是基于System.ServiceModel空间种ClintBase构建的,另外一个配置文件ServiceReferences.ClintConfig是客户端配置文件,用来配置访问服务地址,绑定契约等信息

    Silverlight只支持异步调用,调用完成奖触发一个Complete事件,最终将在OnComplete事件中进行数据绑定

    根据上面步骤用Silverlight简单发邮件功能:

    A:创建WebService并实现:核心代码如下

    Code

    在Asp.net实现发送邮件功能必须引用System.net.Mail空间,发送邮件细节请参考MSDN:http://msdn.microsoft.com/zh-cn/library/system.net.mail.mailmessage.aspx,WebService中发送邮件方法总共接受四个参数:FromAddress-发件人  ToAddress-收件人  Title:标题 Body:内容,在建立WebService发送邮件自前需要建立一个邮件服务器,一般使用Gmail可以使用自己的账号,在根目录Web.Config中配置,详细代码如下:

    <!--配置邮件服务器 发送Emai use Gmail-->
        
    <system.net>
            
    <mailSettings>
                
    <smtp>
                    
    <network host="smtp.gmail.com" port="587" userName="ChenkaiHome@gmail.com" password="" />
                
    </smtp>
            
    </mailSettings>
        
    </system.net>

    配置完必须在Silverlight中添加服务引用

    (2)Silverlight做前台页面:

    效果图-(简化版):

    页面Silverlight代码:

    Code

    当点击Send触发事件后台处理代码:

    Code


     

  • 相关阅读:
    linux安装 Android Studio详细教程,支持性较差,需要安装最新底层库内核的linux
    QT、QTE、qtopia区别
    Sublime Text 有哪些使用技巧
    华为5700交换机通过外部开源protal和本地aaa用户认证的一些问题
    离奇“undefined reference”错误分析与解决方案
    GNU工具链学习笔记
    gcc和ld 中的参数 --whole-archive 和 --no-whole-archive
    揭开Linux操作系统的Swap交换区之谜
    invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause
    学习JavaScript
  • 原文地址:https://www.cnblogs.com/chenkai/p/1500299.html
Copyright © 2020-2023  润新知