加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

银色光环——ASMX部署

发布时间:2020-12-17 02:42:14 所属栏目:安全 来源:网络整理
导读:??? 介于微软的SilverLight写了一个即时在线的白板程序,但是部署上出现一些问题,本机调试的时候出现一个错误,[UnexpectedHttpResponseCode] 解决方案网上也就是有了的,也就是在目录地下增加一个XML策略文件,这里我也就不说了,但是在部署到虚拟空间的时

??? 介于微软的SilverLight写了一个即时在线的白板程序,但是部署上出现一些问题,本机调试的时候出现一个错误,[UnexpectedHttpResponseCode] 解决方案网上也就是有了的,也就是在目录地下增加一个XML策略文件,这里我也就不说了,但是在部署到虚拟空间的时候却发现一个致命的问题,就是无论如何,WebService都不好用,也就是无法保存和读取,更别说及时更新了,不断地折腾之后,发现问题可能出在那个XML文件上,故删除之,然后重新配置完成并完成部署。OK,Done !

? 演示地址,大家可以看这里

http://icesun963.myidc.info/

?? 用的是ASP.net 2.0的虚拟主机,按微软的说法,不管什么系统都能支持XAML的部署,也就是一个简单的HTML没什么区别,不需要添加midi也不需要任何设置。这里是我的html文件,

?

<! DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html? xmlns ="http://www.w3.org/1999/xhtml" ? >

<!-- ?saved?from?url=(0014)about:internet? -->

< head >

????
< title > 银色光环?-?在线白板 </ title >


????
< style? type ="text/css" >

????html,?body?
{

????????height
:?100%;

????????overflow
:?auto;

????
}

????body?
{

????????padding
:?0;

????????margin
:?0;

????
}

????#silverlightControlHost?
{

????????height
:?100%;

????
}

????
</ style >

????

????
< script? type ="text/javascript" >

????????
function?onSilverlightError(sender,?args)?{

????????????
if?(args.errorType?==?"InitializeError")??{

????????????????
var?errorDiv?=?document.getElementById("errorLocation");

????????????????
if?(errorDiv?!=?null)

????????????????????errorDiv.innerHTML?
=?args.errorType?+?"-?"?+?args.errorMessage;

????????????}

????????}

????
</ script >

</ head >


< body >

????
<!-- ?Runtime?errors?from?Silverlight?will?be?displayed?here.

????This?will?contain?debugging?information?and?should?be?removed?or?hidden?when?debugging?is?completed?
-->

????
< div? id ='errorLocation'? style ="font-size:?small;color:?Gray;" ></ div >


????
< div? id ="silverlightControlHost" >

????????
< object? data ="data:application/x-silverlight," ?type ="application/x-silverlight-2-b1" ?width ="810" ?height ="610" >

????????????
< param? name ="source" ?value ="SilverlightApp.xap" />

????????????
< param? name ="onerror" ?value ="onSilverlightError" ? />

????????????
< param? name ="background" ?value ="white" ? />

????????????

????????????
< a? href ="http://go.microsoft.com/fwlink/?LinkID=108182" ?style ="text-decoration:?none;" >

?????????????????
< img? src ="http://go.microsoft.com/fwlink/?LinkId=108181" ?alt ="Get?Microsoft?Silverlight" ?style ="border-style:?none" />

????????????
</ a >

????????
</ object >

????????
< iframe? style ='visibility:hidden;height:0;width:0;border:0px' ></ iframe >

????
</ div >

</ body >

</ html >

注意,上面的 SilverlightApp.xap 应该改为 SilverlightApp.zip

xap 本机测试用的 :) 懒得改咯。

由于SL的DLL版本和.net版本有很大的区别,所以在通讯上也有很多的问题,当然你可以说自己格式化,那么和自己写tcp的难度没有什么区别了,但是在。net中序列化还是很好用的,即使你的类很显然处于不同的版本下。

比如一个简单的class1 如果你在SL下使用 并且也在WS上添加的话,使用的时候很显然的会给你一个类型错误的异常,你就不得不进行一次转换。这也是代价之一。

或者你可以尝试我现在使用的办法,使用byte[] 或者 字符串 我这里是压缩之后通过 byte[] 传输,传输过程是这样的。

?

????[Serializable]

????
public ? abstract ? class ?WBMessage

????
{

????????
public?string?id?;


???????

????????
public?enum?WHITEBOARD_MESSAGE_TYPE

????????
{

????????????
//enWBBegin=0,

????????????enWBIMHERE,

????????????enWBLine?
=?1,

????????????
//enWBRectangle,?

????????????
//enWBEllipse,

????????????
//enWBClearScreen,

????????????enWBUpdateLine?=?4,

????????????enWBDelLine?
=?5,

????????????enWBEnd?
=?6,

????????????enWBSave?
=?7,

????????????enWBLoad?
=?8,

????????????enMsgList
=100

????????}
;


????????
public?abstract?WHITEBOARD_MESSAGE_TYPE?MessageType

????????
{

?????????????
get;

????????}


????????
public?WBMessage()

????????
{

????????}


????????
public?byte[]?Data;

?????


????}

这里是基础的用来通讯的类

来看看传输类

所有的消息都是通过继承这个类的。

?

???????? public ? static ? string ? global ? = ? string .Empty;

????????
public ? static ? void ?Send(WBMsgDrawLine?msg)

????????
{

????????????BasicHttpBinding?bind?
=?new?BasicHttpBinding();

????????????EndpointAddress?endpoint?
=?new?EndpointAddress("http://icesun963.myidc.info/MapService.asmx");


????????????SilverlightClassLibrary.MapService.MapServiceSoapClient?Cilent?
=?new?SilverlightClassLibrary.MapService.MapServiceSoapClient();



????????????Cilent.MSGRequestCompleted?
+=?new?EventHandler<SilverlightClassLibrary.MapService.MSGRequestCompletedEventArgs>(Cilent_MSGRequestCompleted);


????????????msg.Data?
=?SerializationHelper.SerialiazeToByteArray(msg);



????????????WBMsgDrawLine?wbmsg?
=?new?WBMsgDrawLine(msg);


????????????wbmsg.id?
=?global;

????????????Cilent.MSGRequestAsync(SerializationHelper.SerialiazeToByteArray(wbmsg),?(
int)msg.MessageType);


????????}

呵呵,序列化自己,然后包装成传输类,传递 :)

暂时就这么多把,自己的一点小心得,希望对大家有用!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读