新手学web服务遇到的几个问题,请指教!!!

xtidtwwh 2006-05-29 02:43:43
本人以前一直没有从事过web服务的开发,只听说他很火就也自己为自己做了一个日常消费记录的小东东,采用C/S模式+web服务的结合,但目前遇到了一些问题不能解决,另外还有自己的一些疑问想要大家帮忙的.
winform程序是表现层,功能完全来自web服务,web服务则实现对数据库的操作.
搞了几天觉得有如下一些问题请大家帮忙解决.
1.首先这种模式是否可行(不针对此项目来说,因为我一直都不怎么对asp.net感兴趣,我所做的项目一般是在专用网内的,例如交通网,公安网等)
2.web服务能否采用多线程?
3.一个asmx是不是只能对应一个类?
4.我能不能把asmx文件指向app_code目录下任何一个类文件?
5.web方法能不能实现任何返回类型函数的重载?我这里就遇到这样的问题,我把代码大致贴出来
public class baseConsume
{
public virtual DataTable GetConsume(string UserName)
{
return null;
}

public virtual DataTable GetConsume(string UserName,Datetime Start,DateTime EndD)
{
return null;
}

public Virtual bool AddConsume(ConsumeInfo csInfo)
{
return false;
}
}
此类是一个基类,保存在baseConsume.cs中,有两个可重写的方法,然后有一个类继承他,并重写其方法
[WebService(Namespace = "Consume")]
[WebServiceBinding(ConformsTo = WsiProfiles.None)]
public class ConsumeDetail:baseConsume
{
[WebMethod(MessageName = "读取指定用户消费细节")]
public override DataTable GetConsume(string UserName)
{
return null;
}
[WebMethod(MessageName = "读取所有消费细节")]
public override DataTable GetConsume(string UserName,DateTime Start,DateTime EndD)
{
return null;
}
}
将此类保存在名为:ConsumeDetail.cs文件中
然后添一个名为:Consume.asmx文件,其内容是:
<%@ WebService Language="C#" CodeBehind="~/App_Code/Consume/ConsumeDetail.cs" Class="Consume.ConsumeDetail" %>
然后Shift+F6编译完全通过.(这里可能有手误,是用记事本写出来的)
然后再在一个名为ConsumeApp的winForm项目中添加web引用,找到Consume.asmx文件,好象提示了一些关于消息命名的提示,但还是
可以继续添加,于是将web引用命名为Consume.Opreate
然后在form1.cs中的button1.Click事件中有如下代码:
private button1_Click(object sender,EventArgs e)
{
Consume.Opreate objConsume =new Consume.Operate();
DataTable tmpTable =new Datatable();
tmpTable = objConsume.GetConsume("User1");
}

问题就出现在这里了,此时objConsume.GetConsume("User1")返回的根本就是不是DataTable类型,而是什么"读取指定用户消费细节"
请问是什么原因,我想可能是关于XML方面的问题了.请大家帮忙解决!
谢谢!
...全文
179 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xtidtwwh 2006-05-29
  • 打赏
  • 举报
回复
并且好象只要是返回什么bool,int类型的都能够正确执行,DataTable就是不行,我在ConsumeDetail类中另外写一个返回DataTable的都不行
xtidtwwh 2006-05-29
  • 打赏
  • 举报
回复
可是我另外一个asmx对应的类就不是从WebService继承的但可以正常使用哦
fangzhe 2006-05-29
  • 打赏
  • 举报
回复
1.这个是典型的3层结构
2.web服务本身是线程安全的。一个调用引发一个线程,不过你也可以自己新建工作线程
3.是
说到这个,asmx的类应该从WebService继承,这个是你5的问题
4.CodeBehind?当然可以
xtidtwwh 2006-05-29
  • 打赏
  • 举报
回复
自己顶一下

12,162

社区成员

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

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