zoukankan      html  css  js  c++  java
  • SilverLight之路(序)

    开始学习SilverLight了,之前断断续续的看了一点,但由于日常工作中用不到,所以总是看了又忘,现在决定把学习路上的点点滴滴记下来,免得总是“重头再来”

    先从网上找些资料看看。。。头大,而且没有那么多时间,还是从“实践入手”吧,学习先从看别人的代码开始,网上找了一个例子《SilverLight+Wcf简易聊天室》,下载之。

    (艰苦之旅从此开始。。。)

    首先遇到的第一个问题就是IIS的配置,按照教程上所说,需要在IIS7中添加net.tcp协议绑定,因为该协议支持双向通信,但开始时在“添加网站绑定”下拉列表中只有http与https两种类型。原来,如果要想使iis7中wcf支持net.tcp通信,需要添加windows组件:wcf的No-HTTP Activation功能。

    那好,咱就添上。然后按传统,编译=》发布,但部署到iis后浏览时总是提示:

    未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.ServiceModel.Activation.HttpModule”。

    看起来是版本的问题,但我的环境是VS 2010编译的,.Net framework4.0的版本,怎么载入了3.0的dll?

    网上找到了原因,原来是本地电脑先安装了.Net framework 4.0,后安装的IIS7,所以应该重新执行"aspnet_regiis.exe -iru"来把.Net 4.0注册到IIS中去。

    照做!

    在C:\Windows\Microsoft.NET\Framework\v4.0.30319下找到了aspnet_regiis.exe,打开commandline,执行"aspnet_regiis.exe -iru",出现信息:

    开始安装 ASP.NET (4.0.30319) 并更改 IIS 配置以使用此版本的 ASP.NET。

    ...................

    已完成安装 ASP.NET (4.0.30319),并已更改 IIS 配置以使用此版本的 ASP.NET。

    安装程序检测到操作过程中出现了一些错误。有关详细信息,请查看安装程序日志文件 C:\

    Users\mustapha\AppData\Local\Temp\ASPNETSetup_00007.log

    查看log文件,里面有一个错误:

    Failure  Changing IIS ApplicationHost.config: IIS7Register failed with HRESULT 800700b7: '当文件已存在时,无法创建该文件。  '

    在这个目录下C:\Windows\System32\inetsrv\config找到了applicationHost.config,先改名,再执行“aspnet_regiis.exe -iru”,还是说有错误,查看log,又出现:

    Failure  Changing IIS ApplicationHost.config: IIS7Register failed with HRESULT 80070002: '系统找不到指定的文件。  '

    抓瞎......................

    Google了一堆内容,最后找到解决方案:

    在 Visual Studio 2010 命令提示符下运行下面的命令行: aspnet_regiis.exe -i –enable

    运行起来了,但载入SilverLight时又出了异常,原因是在SL中,当缺少app中资源时,虽然编译可以通过,但浏览时却会出现异常,如:Unhandled Error in Silverlight System.Windows.Application.LoadComponent,这时重新检察xaml文件,你可能会发现问题所在。(静态资源引用问题,资源问题以后还会遇到好多。。。)

    再说开发环境问题,有朋友在更新完silvierlight后,在开发时提示“无法启动调试 未安装silverlight developer 运行时”,这个问题是安装的sl版本不是开发版本导致的,解决这个问题很简单(有两种方法),步骤如下:

    解决办法1:(我使用的这种)

    1.在添加删除程序里卸载silverlight插件

    2.winrar打开silverlight_tools.exe

    3.安装里面的silverlight_developter.exe文件

    解决办法2:

    1.打开SilverlightApplicationXXX.Web项目右键属性

    2。选择Web->去掉Silverlight的勾

     注:该方法将只能运行项目,不能进行调试

    众所周知,在sl中有个跨域访问问题,一直就听说clientaccesspolicy.xml文件只能放到根目录中,但对此感觉非常不爽,因为很多情况下可能访问不到默认的80端口,因此想找一个解决办法,但结果是令人沮丧的,网上有一种说法是使用IClientAccessPolicy Interface,但似乎该方案只能是使用WebHttpBinding.

    继续。

    真是举步维艰,处处碰壁啊。

    问题描述:无法调度消息,因为终结点地址“{0}”上的服务对该地址的协议不可用。

    这个问题郁闷了好久,经过不懈努力,终于找到解决办法,真是不容易啊

    如果在调用服务的过程中出现Error:

    An unhandled exception of type 'System.ServiceModel.EndpointNotFoundException' occurred in mscorlib.dllAdditional information: The message could not be dispatched because the service at the endpoint address 'net.tcp://cs/WASHostService/WASHostService.svc' is unavailable for the protocol of the address.

    则请通过重新安装ServiceModel解决:【C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ServiceModelReg.exe -r】,个人理解是ServiceModel安装的版本的问题,如下:

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319>ServiceModelReg.exe -r

    Microsoft(R) WCF/WF 注册工具版本 4.0.0.0

    版权所有(C) Microsoft Corporation。保留所有权利。

    用于管理一台计算机上 WCF 和 WF 组件

    的安装和卸载的管理实用工具。

    [SC] ChangeServiceConfig2 成功

    [SC] ChangeServiceConfig2 成功

    [SC] ChangeServiceConfig2 成功

    [SC] ChangeServiceConfig2 成功

    [SC] ChangeServiceConfig2 成功

    [SC] ChangeServiceConfig2 成功

    [SC] ChangeServiceConfig2 成功

    [SC] ChangeServiceConfig2 成功

    [警告]HTTP 命名空间保留已存在。

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319>

    另外,有时添加服务引用时会添加不上,那可能是因为没有定义元数据终节点的原因,只要加上就可以了

            <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>

    对原程序做了些修改,但因为对sl与wcf基础太少,所以问题也再所难免。

    在服务端声明的实体类在客户端生成的代理类中找不到?原来在生成代理类的过程中,如果任何方法没有引用此实体类,那么在生成的过程中,代理类中就不会知道有此实体类的存在,因此也就不会生成相应的代理了,一种解决办法是在某个函数中使用一下该 实体类即可(数据契约除外)

    这第一个例子至此总算是部署起来了,并且可以运行了,对原来的代码修修改改,做为测试项目来理解sl和wcf,一段时间之后,我决定尝试自己动作做一个,以我们现有的项目做为蓝本,学习嘛,如果第一个例子算是“见习”的话,那接下来我就要“实习”了。

  • 相关阅读:
    Applied Nonparametric Statistics-lec2
    Applied Nonparametric Statistics-lec1
    pandas-Notes2
    pandas-Notes1
    软件项目-软件项目开发各阶段文档模板(参考)
    项目管理-一个项目的完整过程
    腾讯资深架构师干货总结:一文读懂大型分布式系统设计的方方面面
    从新手到架构师,一篇就够:从100到1000万高并发的架构演进之路
    新手入门:零基础理解大型分布式架构的演进历史、技术原理、最佳实践
    我的常用网站
  • 原文地址:https://www.cnblogs.com/meteortent/p/2075487.html
Copyright © 2011-2022 走看看