WP7感悟之调用WCF服务

创建一个WCF服务程序,以供WP7调用。
服务主要内容是验证WP7传送过来的用户名、密码,并反馈验证结果。
本人环境为.NET4.0.30319 + Windows 7 6.1.7600.... + IIS7
 
因为小生的环境是先安装了VS2010和.NET,然后发现WIN7没有默认安装IIS,随后再安装的IIS 7,因此IIS7安装后并没有获得ASP.NET支持,因此要重新注册ASP.NET版本。
用管理员身份打开 cmd 命令提示符,cd到window安装目录下,找到 "X:\Windows\Microsoft.NET\Framework\v4.0.30319" 文件夹,在其下找到 aspnet_regiis.exe 执行文件,执行 aspnet_regiis -i 命令,重新注册 aspnet ,重启IIS后IIS便可支持.NET编译。
创建WCF过程就行不累赘,发布到IIS后的界面如下:
 
 
 
WCF服务不像之前的WebService服务,可以在web中测试服务,必须建立客户端才可调用测试wsdl文件。
 
打开之前的登录应用,在解决方案资源管理器中点击项目,右键,添加服务引用,在弹出的对话框中的地址栏输入部署在IIS7上的WCF应用地址: http://localhost:7999/Service1.svc ,点击【前往】,稍等片刻,如WCF应用正常的话,VS2010会寻找到应用并显示在下方。
 
 
 
在得到的WCF应用分析中,可以清楚看到小生添加在服务中的服务函数:checkUser。
接下来就要在WP7中调用此验证函数,得到反馈结果
单击确定,将WCF服务引用到WP7项目中,这时可以看到项目中多出了 ServiceReferences.ClientConfig 文件 与 Service References 服务资源目录,表示引用服务成功。
 
 
打开之前的 LoginPop.xaml 文件,打开【开门】按钮中Click(点击)事件,在事件中加入如下代码: 
 
        private void btnLogin_Click(object sender, RoutedEventArgs e)
        {
            if(txtUserId .Text .Trim ().Equals(""))
            {
                lbl_error.Text = "用户名不能为空!";
                txtUserId.Text = "";
                return;
            }
            if (txtPassword.Password.Trim().Equals(""))
            {
                lbl_error.Text = "密码不能为空!";
                txtPassword.Password = "";
                return;
            }

            try
            {
                //构造WCF代理对象
                ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client();

                //设置代理返回结果后的处理事件
                proxy.checkUserCompleted += new EventHandler<ServiceReference1.checkUserCompletedEventArgs>(_proxy_WriteResult);

                //开始异步调用WCF服务
                proxy.checkUserAsync(txtUserId.Text.Trim(), txtPassword.Password.Trim());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

最后再加入返回结果后的处理事件:
        private void _proxy_WriteResult(object sender, ServiceReference1.checkUserCompletedEventArgs e)
        {
            switch(e.Result.ToString()){
                case "0":
                    lbl_error.Text = "验证正确";
                    break;
                case "1":
                    lbl_error.Text = "用户名错误";
                    break;
                case "2":
                    lbl_error.Text = "密码错误";
                    break;
                default:
                    lbl_error.Text = "未知错误!";
                    break;
            }
        }

至此,WP7调用WCF服务验证登录的一个小Demo就大功告成了!!
 
运行这个Demo,验证努力的结果如何吧。
WCF那边正确的用户密码设置为:test / test
 
第一次输入:ttt / test
 
第二次输入:test / ttt
 
第三次输入:test / test
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值