最新评论
成长ing的小鸟 2012-04-12 10:08
@diandianxiaojie
我试了下按照楼主的写法,有两点需要注意下的。
1. <add verb="*" path="*.hessian" type="HessianService.Service, HessianWebService"/>
这个配置,是说拦截所有hessian请求,由命名空间为HessianWebService,类路径为HessianService.Service的这个类进行处理。
所以你应该将你的service端的项目名改为HessianWebService,然后创建实现的类的时候,命名空间为HessianService,类名为Service。或者按照自己的理解去配置。
2.客户端的string url = "http://localhost:36955/hessiantest.hessian"; 这里需要注意你自己调试的时候的端口号。或者用配置iis来解析,然后设置一个主机头,以固定格式去访问。
测试客户端的时候记得服务端页面一定要在打开状态。
另建议,将服务端的接口和实现拆分成两个progect。以方便客户端的加载和以后的扩展。
刘晓飞 2010-10-14 09:52
@diandianxiaojie
<add verb="*" path="*.hessian" type="HessianService.Service, HessianWebService"/>
这句配置说明你要有一个名字为HessianWebService的dll文件,你检查一下bin中是否有这个dll文件?
diandianxiaojie 2010-10-09 16:42
21楼的错误我这也有了,也是提示:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误消息: 未能加载文件或程序集“HessianWebService”或它的某一个依赖项。系统找不到指定的文件。
源错误:
行 65:
行 66:<remove verb="*" path="*.asmx"/>
行 67:<add verb="*" path="*.hessian" type="HessianService.Service, HessianWebService"/>
请问是怎么回事呢?
Suso 2010-05-22 13:11
希望楼主有时间测试一下返回DataTable/DataSet类型,我这边在代码中new一个datatable返回一直报错,刚试用还不熟,谢谢帮忙。
刘晓飞 2010-05-21 22:04
@Suso
理论上是支持Datatable的,但是我也没有具体测试过。通过你反馈的错误信息看出问题应该是出于什么原因请求过程中网络被异常中断了。
Efrey.FOREVERBETA 2010-02-05 10:25
我在测试JAVA Server和Dotnet Client的交互,分别比较
Hessian和Webservice两种方式。
我分别做过100rows/1000rows的性能测试,但是结果很令我诧异,
这种异构系统间的交互,Hessian的使用的时间一直比Webservice大。
但是用java的client来和java server交互,则hessian的性能优势很明显。
现在正在分析原因...
LZ可有这方面的经验?
BillGan 2009-12-17 10:33
以前看到你这个列子,感觉楼主很认真,搞下来一跑,错误,索性自己重新做了个,使用方式仿效CASTLE的DYNAMICPROXY,自己写完,然后再看看楼主的代码,也看到为什么会出错,楼主代码很多错误的地方,不能跑过,只能编译呢,我相信楼主自己应该跑过,运行不出来也应该解决啊,这么多人问。
又是UML,大手笔,大制作,确跑不通,今天来发发火,就是因为下回来,跑出错,还不解决,没公德心,哈哈
错误地方:
1. 字段 FieldBuilder fbuilder只有加载使用,没有初始赋值
ilGen.Emit(OpCodes.Ldarg_0);
ilGen.Emit(OpCodes.Ldarg_0);
ilGen.Emit(OpCodes.Stfld, fbuilder);
2. 创建数组,数组对象加载应该放循环语句内
//ilGen.Emit(OpCodes.Ldloc_3);//放这是错误的
for (int i = 0; i < paramCount; i++)
{
ilGen.Emit(OpCodes.Ldloc_3);//应该在这
ilGen.Emit(OpCodes.Ldc_I4, i);
ilGen.Emit(OpCodes.Ldarg, (short)(i + 1));//arg0表示this,真正的方法参数从索引1开始
ilGen.Emit(OpCodes.Box, paramType[i]);//不装箱对一些类型的参数会出错
ilGen.EmitCall(OpCodes.Call, getTypeMI, null);
ilGen.Emit(OpCodes.Stelem_Ref);
}
刘晓飞 2009-08-26 10:42
@水木
1.前台页面引用命名空间就可以了, <%@ Import Namespace="System.Data" %>
2.对的
水木 2009-08-26 10:21
?:<%#((DataRowView)Container.DataItem)["xxx"]%>
这种方法的绑定,我在以前也看过,呵呵,
不过有几个问题,希望指教一下,
1.如果要写dataRowView的话,前面页面不认识前换成
System.Data.DataRowView,如果在前台引用System.Data呢,我是直接写的,
2.我记得当时看到的是,如果类型不是datatable,而是dataread是,应该用IdataRecord对吗?
第二种方法写的很好,呵,以后准备采用一下。
siser 2009-08-21 16:07
我把主的代码COPY过来,设置IIS后
浏览 http://localhost:49157/WebSite1/aa.hessian 报:
配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误消息: 未能加载文件或程序集“HessianWebService”或它的某一个依赖项。系统找不到指定的文件。
源错误:
行 45:
行 46: <httpHandlers>
行 47: <add verb="*" path="*.hessian" type="HessianService.Service, HessianWebService" />
行 48: </httpHandlers>

