.net新手关于soap的问题,谢谢大家了!!

duyhui 2004-07-30 11:01:10
第一次在.net环境下开发,做个通信的程序,用C#,要求用soap进行通信(应为通信要能穿越防火墙),服务器端和客户端都是window Form形式的.我再查了查资料后,感觉上soap开发服务器端都是个页面(个人理解),不知道怎么用window Form形式+soap开发服务器端,请大家给个建议了,有相应的例子更好!!
十分感谢!!

另外,我想用改用.net remote的方法来进行通信,采用http信道传输,不知道行不行,这两种方法有什么区别?

谢谢了!!!
...全文
362 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
triout 2004-07-30
  • 打赏
  • 举报
回复
上面介绍的是直接在浏览器中调用,如果在应用程序中调用(WEB应用和WINDOWS应用一样),那么在项目的引用中按右键,选择添加WEB应用,在对话框中输入你的WEBSERVICE的地址(ASMX页面文件)后,系统会自动给你生成相应的类的,这样,只要简单的调用类的函数就可以了。


triout 2004-07-30
  • 打赏
  • 举报
回复
上面的代码中,

// [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }

就是一个注释了的WebService可调用的方法。
你可以在其中添加类似的方法:只要是public且有[WebMethod]属性说明就可以了。

这样,假设你的这个WebService页面的路径为:

http://localhost/MyService.Asmx,那么你就可以通过:

http://localhost/MyService.Asmx/HelloWorld来访问。
triout 2004-07-30
  • 打赏
  • 举报
回复
WebService是一个函数.

你创建一个WEB APPLICATION后,可以添加一个WEBSERVICE的项,这个项默认情况如下:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

namespace SuperData.SDInfo.bCenter.Web
{
/// <summary>
/// Service1 的摘要说明。
/// </summary>
public class Service1 : System.Web.Services.WebService
{
public Service1()
{
//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
InitializeComponent();
}

#region 组件设计器生成的代码

//Web 服务设计器所必需的
private IContainer components = null;

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
}

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}

#endregion

// WEB 服务示例
// HelloWorld() 示例服务返回字符串 Hello World
// 若要生成,请取消注释下列行,然后保存并生成项目
// 若要测试此 Web 服务,请按 F5 键

// [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }
}
}

chNET 2004-07-30
  • 打赏
  • 举报
回复

see:
http://search.csdn.net/Expert/topic/2230/2230907.xml?temp=.2176172
jietuan 2004-07-30
  • 打赏
  • 举报
回复
soap结合.net remoting是非常有用的,比如你局域网服务器端的程序是用.net写的,而要和他通信的应用端是vb写的,那你就必须使用soap,还原上传附件的时候,哈哈。
triout 2004-07-30
  • 打赏
  • 举报
回复
如果你的服务器端安装了IIS,那么可以在服务器端开发WEBSERVICE,这样,在CLIENT端(无论WEB还是WINDOWS应用)都可以通过调用WEBSERVICE来通讯的。

可以说WEBSERVICE是SOAP的进一步封装或表现形式之一。

使用REMOTE方式也是可行的,具体的区别我也说不清楚,关注!
duyhui 2004-07-30
  • 打赏
  • 举报
回复
还是不太明白,up一下!!
wagod 2004-07-30
  • 打赏
  • 举报
回复
服务器程序与客户端程序就都是通过这个Service1 来通讯的
wagod 2004-07-30
  • 打赏
  • 举报
回复
在服务器端建立webservice,并添加一个test方法,返回字符串

[WebService(Namespace="http://192.168.0.127:300/webservice1")]
public class Service1 : System.Web.Services.WebService
{
public Service1()
{
//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
InitializeComponent();
}
组件设计器生成的代码

[WebMethod]
public string test(string ss)
{
return ss;
}
}



客户端添加web引用,例如引用名为WebReference,url为http://192.168.0.127:300/Service1.asmx
则在客户端的window Form程序中这样子调用
private void button2_Click(object sender, System.EventArgs e)
{
WebReference.Service1 ss=new test.WebReference.Service1();
txtbox2.Text=ss.test(txtbox1.Text);
}
duyhui 2004-07-30
  • 打赏
  • 举报
回复
谢谢大家的回复,尤其是triout,非常感谢!!
你给的说明我清楚了,但感觉你说的是客户端调用WEBSERVICE的方法,可是,我怎么把这个WEB服务和我的服务器端的window Form程序结合起来呢??就是让远程通过WEBSERVICE和我的服务器程序能够互相通信??

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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