如何向web service里的方法传递一个对象类型的参数,请指教!

wfzn 2007-01-06 04:05:53
如何向web service里的方法传递一个对象类型的参数,请指教!
...全文
636 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wfzn 2007-01-16
  • 打赏
  • 举报
回复
呵呵,谢谢大家,问题解决了:

<system.web>
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />

<!--

在web.config里面添加如上信息。
wfzn 2007-01-13
  • 打赏
  • 举报
回复
当传输的记录的条数很大时,就出现如下的错误提示:
用户代码未处理 System.Web.Services.Protocols.SoapException
Message="运行配置文件中指定的扩展时出现异常。 ---> 超过了最大请求长度。"

这样的错误如何处理?

怎么传输很大的记录条数,才不出现错误?

谢谢
wfzn 2007-01-13
  • 打赏
  • 举报
回复
用户代码未处理 System.Web.Services.Protocols.SoapException
Message="运行配置文件中指定的扩展时出现异常。 ---> 超过了最大请求长度。"
Source="System.Web.Services"
Actor=""
Lang=""
Node=""
Role=""
StackTrace:
在 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
在 WebReference100.Service.HelloWorld02(Byte[] SerObj) 位置 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\website79\d091861f\e71d601c\App_WebReferences.xz2tzhct.0.cs:行号 89
在 _Default.Button1_Click1(Object sender, EventArgs e) 位置 c:\Documents and Settings\张宁\My Documents\Visual Studio 2005\WebSites\WebSite79\Default.aspx.cs:行号 64
在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
在 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
稍微有点无敌 2007-01-12
  • 打赏
  • 举报
回复
最简单的办法把对象数组用2进制序列化成byte[]
然后webservice端反序列化成想要的对象数组,调用结束后再序列化成byte[]返回,客户端再反序列化得到结果
[WebMethod]
public byte[] WebInvoke( byte[] data )
{
}


public class Serializer
{

private BinaryFormatter bf;

public Serializer()
{
this.bf = new BinaryFormatter();
}

public byte[] BinarySerialize(object obj)
{
if (obj == null)
{
throw new ArgumentNullException("obj");
}
MemoryStream stream1 = new MemoryStream();
this.bf.Serialize(stream1, obj);
return stream1.ToArray();
}

public object BinaryDeserialize(byte[] data)
{
if (data == null)
{
return null;
}
MemoryStream stream1 = new MemoryStream(data);
return this.bf.Deserialize(stream1);
}
}
yuyaizai 2007-01-12
  • 打赏
  • 举报
回复

传过去的类型一致就好了
不过要看你反回的是什么类型了
有些类型是不可以返回的
xiaoyao0945 2007-01-10
  • 打赏
  • 举报
回复
可以自己去做xml的解析啊,把你的类格式到xml里,然后再解析xml实例化到你的类就可以了啊,虽然麻烦写要自己写 嘿嘿
wfzn 2007-01-07
  • 打赏
  • 举报
回复
那除了序列化为一个二进制数组,另外是否还可以使用xml序列化,

什么是XML序列化,有没有这方面的小例子,谢谢。

liujia_0421 2007-01-07
  • 打赏
  • 举报
回复
可以,webservice本身就是基于http的,所以能穿透防火墙..
wfzn 2007-01-07
  • 打赏
  • 举报
回复
to:
序列化成二进制数组作为参数传过去,到服务端再反序列化成对象..

这样做后,客户的防火墙是否可以穿透。

请指教。
liujia_0421 2007-01-06
  • 打赏
  • 举报
回复
序列化成二进制数组作为参数传过去,到服务端再反序列化成对象..
糖醋鼻子 2007-01-06
  • 打赏
  • 举报
回复
序列化/反序列化不是一句两句能说清的,建议看相关资料
wfzn 2007-01-06
  • 打赏
  • 举报
回复
各位老大说的详细点,最好给个例子。
  • 打赏
  • 举报
回复
在讨论 webService 技术的地方,你查找一下“序列化/反序列”的例子。

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧