web service HelloWorldRequest 问题
我在本机中有个http://localhost/Service1.asmx服务,其中代码如下
C# code
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
namespace WebService1
{
/// <summary>
/// Service1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
}
我在另外一个网站添加服务引用,命名为name1.
随后我在cs文件中输入name1,提示却变成了
HelloWorldRequest
HelloWorldRequestBody
HelloWorldResponse
HelloWorldResponseBody
WebServiceSoap
WebServiceSoapChannel
WebServiceSoapClient
而我引用别人的web service时,却不会有这几个:
HelloWorldRequest
HelloWorldRequestBody
HelloWorldResponse
HelloWorldResponseBody
只有:
WebServiceSoap
WebServiceSoapChannel
WebServiceSoapClient
,不知道是如何设置的。
经过我的测试发现如果把
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
改成:
[WebMethod]
public bool HelloWorld()
{
return true;
}
也就是改个类型就没有上面的情况了,不知道什么原因
[最优解释]
我在本机中有个http://localhost/Service1.asmx服务,其中代码如下
C# code
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
namespace WebService1
{
/// <summary>
/// Service1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
}
我在另外一个网站添加服务引用,命名为name1.
随后我在cs文件中输入name1,提示却变成了
HelloWorldRequest
HelloWorldRequestBody
HelloWorldResponse
HelloWorldResponseBody
WebServiceSoap
WebServiceSoapChannel
WebServiceSoapClient
而我引用别人的web service时,却不会有这几个:
HelloWorldRequest
HelloWorldRequestBody
HelloWorldResponse
HelloWorldResponseBody
只有:
WebServiceSoap
WebServiceSoapChannel
WebServiceSoapClient
,不知道是如何设置的。
经过我的测试发现如果把
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
改成:
[WebMethod]
public bool HelloWorld()
{
return true;
}
[其他解释]
代码那么多,乱的很啊
[其他解释]
难道大家都没有遇到过这个问题,如果没有给我的hello world demo也可以邮箱:64049027 qq.com
[其他解释]
[WebMethod]
public void OnlyShow(DataTable dt)
{
//如果只是string,那么一个方法会多出四个类似这样的类:
//HelloWorldRequest
//HelloWorldRequestBody
//HelloWorldResponse
//HelloWorldResponseBody
//如果有10个方法就会生成4*10个上面这样的情况,郁闷要死,
//加了这个用到DataTable的方法就不会出现这些类了,研究很久才试出来
}
[其他解释]
分给错了,没办法,反正没有我要的答案,自己解决了
[其他解释]
你添加Web 引用来调用,不要用服务引用,如果你要用服务引用请点高级里有个添加Web引用来调用~~~
webservice->添加web引用
WCF->添加服务引用
如:点Web引用 输入网址:http://webservice.xp81.com/
Winfrom 调用
com.xp81.webservice.AspxTools aa = new WindowsFormsApplication1.com.xp81.webservice.AspxTools();
MessageBox.Show(aa.getStrColor());
Webfrom 调用
com.xp81.webservice.AspxTools aa = new WebApplication1.com.xp81.webservice.AspxTools();
Response.Write(aa.getStrColor());
[其他解释]
同样引用一个webservice asp.net和winform 显示的方法不一样