如何部署Silverlight及WebService

一直通过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.  

如图

这样,即使你的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.     ///   
  10.     /// WebService1 的摘要说明  
  11.     ///   
  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(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

【编辑推荐】

  1. ASP.NET MVC Web应用程序工程
  2. IIS6的ASP.NET ISAPI请求处理过程
  3. ASP.NET控件的七种用户管理相关控件
  4. 对ASP.Net进行RSA加密
  5. ASP.NET得到数据库字符串的方法

本文题目:如何部署Silverlight及WebService
网页网址:http://www.gawzjz.com/qtweb/news9/180309.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联