• 部署Silverlight及Web Servi“.NET研究”ce 狼人:


      一直通过vs测试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然后把这里也改了。
      <param name="source" value="ClientBin/SilverlightApplication2.htm"/>
      如图


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

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

    大气象
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;

    namespace SilverlightApplication2.Web
    {
        
    /// <summary>
        
    /// WebService1 的摘要说明
        
    ///上海闵行企业网站制作style="color: #008000;"> </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo 
    = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(
    false)]
        
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
        
    // [System.Web.Script.Services.ScriptServic上海徐汇企业网站制作e]
        public class WebService1 : System.Web.Services.WebService
        {

            [WebMethod]
            
    public string HelloWorld()
            {
                
    return "Hello World";<上海网站建设br />        }
        }
    }
    调用
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using&nb上海企业网站设计与制作sp;System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;

    namespace SilverlightApplication2
    {
        
    public partial class MainPage : UserControl
        {
            
    public MainPage()
            {
                InitializeComponent();
                
    this.Loaded += new RoutedEventHandler(Page_Loaded);
            }
            
    //创建Web Service对象
            ServiceReference1.LinqXmlServiceSoapClient ws = new ServiceReference1.LinqXmlServiceSoapClient();
            
    void Page_Loaded(object sender, RoutedEventArgs e)
            {
                AddEvent();
                Bind();
            }
            
    //注册事件,有点类似Ajax的回调
            private void AddEvent()
            {
                ws.HelloWorldCompleted 
    += new EventHandler<ServiceReference1.HelloWorldCompletedEventArgs>(ws_HelloWorldCompleted);
            }
            
    //回调函数
            void ws_HelloWorldCompleted(object sender, ServiceReference1.HelloWorldCompletedEventArgs e)
            {
                button1.Content 
    += e.Result <上海闵行企业网站设计与制作/span>+ " hi";
                
    //MessageBox.Show(e.Result);
            }
            
    private void Bind()
            {
                ws.HelloWorldAsync();
            }

        }
    }

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

  • 相关阅读:
    怎么样通过API函数获取tooltip的内容(请高手帮忙)
    Ajax控件之Accordion控件学习
    C#中结构与类的区别
    C# ref and out 区别
    java 将PDF文件的首页提取为图片
    围住浮动元素(消除浮动)的三种方法
    myeclipse unable to install breakpoint
    C#调用C++编写的COM DLL
    高手教你玩53kf在线客服的指定客服功能
    让IIS支持Flv的详细设置方法
  • 原文地址:https://www.cnblogs.com/waw/p/2217008.html
Copyright © 2020-2023  润新知