以前使用 vs.net2005 建的项目,使用到了微软的 ajax 控件, AutocompleteExtender,然后建立了 webservice , 这个功能完成的很好,一切正常。
后来,我的vs 工具升级到了 vs.net2008 ,因为项目使用,我又使用了 AutocompleteExtender ,一切照着以前 vs.net2005 时,使用 AutocompleteExtender 的方法做的,在 vs.net2008 中新建了 webservice ,但是,此功能就是运行不起来, 使用AutocompleteExtender没反应,输入啥都在webservice里面跟踪不到 。很是奇怪,后来,以网上搜索相关资料,发现一个问题,
问题出在用 vs.net2008 新建 webservice 身上,新建一个 webservice 时,代码如下:
代码
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
用 vs.net2008 新建的 webservice ,少了最重要的一句:
[System.Web.Script.Services.ScriptService]
改成如下后,即正常
代码
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//以下这句用以调用Web Service方法签名
[System.Web.Script.Services.ScriptService] // 重要,否则无法在客户端调用此方法而导致根本无法实现效果
[ToolboxItem(false)]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//以下这句用以调用Web Service方法签名
[System.Web.Script.Services.ScriptService] // 重要,否则无法在客户端调用此方法而导致根本无法实现效果
[ToolboxItem(false)]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}