zoukankan      html  css  js  c++  java
  • 如何部署Silverlight及Web Service

    今天我们将介绍的是部署Silverlight及Web Service,本文作者本来以为是简单的事情,其实还是经历了很多挫折。

    AD:

    一直通过Visual Studio测试Silverlight,本以为部署到服务器上是很简单的事。
    没想到遇到了很多麻烦,用了整整一天的时间搜索解决方案。

    先说部署到xp系统下本地IIS,服务器win2003也一样。

    如图,右击虚拟目录->属性->HTTP头->MIME类型。添加

    扩展名: .xap

    MIME类型:application/x-silverlight-app

    扩展名: .xaml

    MIME类型:application/xaml+xml

    这样就可以正常显示Silverlight了。

    如果你调用了Web Service,

    并且你的Web Service就在承载Silverlight的网站下。如图

    这样不会有跨域操作的麻烦。

    但是你不能直接引用localhost这样的本地服务。

    否则部署在服务器上调用不成。

    我的方法是把这个服务先部署在本地IIS

    然后添加服务引用。

    比如地址是http://127.0.0.1:8088/sl/LinqXmlService.asmx

    这时候不存在跨域操作,先测试成功。

    之后打开服务引用目录,如图

    把这里的文件全部用vs打开,然后Ctrl+H做替换,选择所有打开文档。

    http://127.0.0.1:8088/sl/LinqXmlService.asmx替换成

    http://www.weiqi9d.com/LinqXmlService.asmx

    即你的服务器地址。

    我也不知道是怎样想到这样做的。试了一下,可以。

    另外一个问题,服务器上仍然无法访问.xap不知道为什么。

    我只好把.xap修改成.htm然后把这里也改了。

    1. <param name="source" value="ClientBin/SilverlightApplication2.htm"/> 

    如图

    这样,即使你的sl是用vs2010开发的,并且服务器没有安装.net 4.0也可以正常显示。

    记录一下Silverlight调用Web Service的方法。

    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Web;  
    5. using System.Web.Services;  
    6.  
    7. namespace SilverlightApplication2.Web  
    8. {  
    9.     /// <summary>  
    10.     /// WebService1 的摘要说明  
    11.     /// </summary>  
    12.     [WebService(Namespace = "http://tempuri.org/")]  
    13.     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
    14.     [System.ComponentModel.ToolboxItem(false)]  
    15.     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。  
    16.     // [System.Web.Script.Services.ScriptService]  
    17.     public class WebService1 : System.Web.Services.WebService  
    18.     {  
    19.  
    20.         [WebMethod]  
    21.         public string HelloWorld()  
    22.         {  
    23.             return "Hello World";  
    24.         }  
    25.     }  
    26. }  
    27.  
    28. 调用   
    29. using System;  
    30. using System.Collections.Generic;  
    31. using System.Linq;  
    32. using System.Net;  
    33. using System.Windows;  
    34. using System.Windows.Controls;  
    35. using System.Windows.Documents;  
    36. using System.Windows.Input;  
    37. using System.Windows.Media;  
    38. using System.Windows.Media.Animation;  
    39. using System.Windows.Shapes;  
    40.  
    41. namespace SilverlightApplication2  
    42. {  
    43.     public partial class MainPage : UserControl  
    44.     {  
    45.         public MainPage()  
    46.         {  
    47.             InitializeComponent();  
    48.             this.Loaded += new RoutedEventHandler(Page_Loaded);  
    49.         }  
    50.         //创建Web Service对象  
    51.         ServiceReference1.LinqXmlServiceSoapClient ws = new ServiceReference1.LinqXmlServiceSoapClient();  
    52.         void Page_Loaded(object sender, RoutedEventArgs e)  
    53.         {  
    54.             AddEvent();  
    55.             Bind();  
    56.         }  
    57.         //注册事件,有点类似Ajax的回调  
    58.         private void AddEvent()  
    59.         {  
    60.             ws.HelloWorldCompleted += new EventHandler<ServiceReference1.HelloWorldCompletedEventArgs>(ws_HelloWorldCompleted);  
    61.         }  
    62.         //回调函数  
    63.         void ws_HelloWorldCompleted(object sender, ServiceReference1.HelloWorldCompletedEventArgs e)  
    64.         {  
    65.             button1.Content += e.Result + " hi";  
    66.             //MessageBox.Show(e.Result);  
    67.         }  
    68.         private void Bind()  
    69.         {  
    70.             ws.HelloWorldAsync();  
    71.         }  
    72.  
    73.     }  

    希望对正在学习Silverlight的朋友有帮助,同时希望牛人解答我的疑惑。

    原文链接:http://www.cnblogs.com/greatverve/archive/2010/12/23/silverlight-web-service.html

  • 相关阅读:
    网络常用的linux系统调用
    如何在Linux下写无线网卡的驱动【转】
    理解 Linux 配置文件【转】
    每天一个linux命令【转】
    宏定义编写技巧__调试技巧【原创】
    linux 高级字符设备驱动 ioctl操作介绍 例程分析实现【转】
    Linux驱动总结3- unlocked_ioctl和堵塞(waitqueue)读写函数的实现 【转】
    初识CPU卡、SAM卡/CPU卡简介、SAM卡简介 【转】
    android中跨进程通讯的4种方式
    MISC混杂设备 struct miscdevice /misc_register()/misc_deregister()【转】
  • 原文地址:https://www.cnblogs.com/leischen/p/2782853.html
Copyright © 2011-2022 走看看