积极答复者
web service调用客户端函数

问题
答案
-
你好 WCF是可以的;
也可以直接用.NET Remoting 参考我这篇文章 http://hi.baidu.com/1987raymond/blog/item/6e3faf1302b96c886538db9b.html
在你这种情况下,其实你说的客户端就是服务器端了,服务器端就是客户端了
Raymond Tang (Microsoft C# MVP)
Denn Ich Gehoer nur mir
微软中文论坛同城社区成都QQ群:74268428
My Chinese Blog
Chengdu,Sichuan Province,China- 已建议为答案 ThankfulHeart 2011年5月4日 3:07
- 取消建议作为答案 ThankfulHeart 2011年5月4日 5:21
- 已标记为答案 amadok 2011年7月19日 2:54
-
我想实现这样一个需求;
web service主动调用某个客户端的函数,结果在客户端显示。比如,弹出一个对话框什么的。
注意:不是客户端发出请求,服务器端异步响应的这种。而是,服务器端主动去调用客户端。
可以在服务器端配置客户端吗?或者有其他更好的思路,望高手指点!
ASP.NET web Service无法支持。
WCF支持双工通信,我们也称作 发布订阅模式。服务可以回调那些订阅了改服务的客户端
阅读全文-->WCF分布式开发步步为赢(10):请求应答(Request-Reply)、单向操作(One-Way)、回调操作(Call Back).
Frank Xu Lei--谦卑若愚,好学若饥
专注于.NET平台下分布式应用系统开发和企业应用系统集成
Focus on Distributed Applications Development and EAI based on .NET
【老徐的网站】:http://www.frankxulei.com/
- 已标记为答案 amadok 2011年7月19日 2:54
全部回复
-
你好 WCF是可以的;
也可以直接用.NET Remoting 参考我这篇文章 http://hi.baidu.com/1987raymond/blog/item/6e3faf1302b96c886538db9b.html
在你这种情况下,其实你说的客户端就是服务器端了,服务器端就是客户端了
Raymond Tang (Microsoft C# MVP)
Denn Ich Gehoer nur mir
微软中文论坛同城社区成都QQ群:74268428
My Chinese Blog
Chengdu,Sichuan Province,China- 已建议为答案 ThankfulHeart 2011年5月4日 3:07
- 取消建议作为答案 ThankfulHeart 2011年5月4日 5:21
- 已标记为答案 amadok 2011年7月19日 2:54
-
您好:) 就我个人意见而言。如果你是开发WinForm的,直接在WinForm的程序中引入WebService,然后调用一般的方法,就像使用net类库一样调用,然后用MessageBox弹出即可。 如果是WebForm,那么用jQuery的Ajax异步非常好。这里我不妨给你一个例子(如果你需要,请发送邮件到maledong@qq.com,主题“天气预报AJAX代码示例”) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JQuery AJAX示例代码</title> <script> $(function () { //先获取全部的省等地方(返回一个xml的string数组) $.ajax({ type: "post", url: "http://www.webxml.com.cn/webservices/weatherwebservice.asmx/getSupportProvince", datatype: "xml", success: function (result) { $(result).find("string").each( function () { //$(this).text()的“text”方法可以获取html容器和xml容器的文字 $("#selProvinces").append("<option value='" + $(this).text() + "'>" + $(this).text() + "</option>"); }); } }); //然后根据选择的省,加载所有的市 $("#selProvinces").change(function () { //清空所有项目 $("#selCities").empty(); //动态加载 $.ajax({ type: "post", timeout: 1200, url: "http://www.webxml.com.cn/webservices/weatherwebservice.asmx/getSupportCity", data: "byProvinceName=" + $("#selProvinces").val(), //给Service传递参数 datatype: "xml", //成功加载: success: function (result) { $(result).find("string").each(function () { $("#selCities").append("<option value='" + $(this).text() + "'>" + $(this).text() + "</option>"); }); } }); }); //根据动态选择的城市,查询对应的天气预报情况: $("#selCities").change(function () { $("#ulResult").empty(); //因为放到Dropdownlist中的选项是“名称(编号)”,所以只要名称 var foundcontent = $.trim($("#selCities").val().substring(0, $("#selCities").val().indexOf("("))); $.ajax({ type: "post", url: "http://www.webxml.com.cn/webservices/weatherwebservice.asmx/getWeatherbyCityName", data: "theCityName=" + foundcontent, datatype: "xml", //准备加载(注意:S必须大写!) beforeSend: function () { $("#spResult").css("display", "block"); }, //成功了…… success: function (result) { $(result).find("string").each(function () { //排除第三个图片输出 if ($(this).text().indexOf(".gif")>0) { $("#ulResult").append("
- <image src='Image/" + $(this).text() + "'/>"); } else { if($(this).text().indexOf(".jpg")<0) { $("#ulResult").append("
- " + $(this).text() + ""); } } }); }, //完成了…… complete: function () { $("#spResult").css("display", "none"); } }) }); }) </script> <style type="text/css"> #Select1 { width: 198px; } #selCities { width: 233px; } #selProvinces { width: 227px; } </style> </head> <body> 请选择你需要的省(市):<select id="selProvinces"> </select>
请选择你需要的区(县):<select id="selCities"> </select>
查询结果:请稍后…… -
您好:) 就我个人意见而言。如果你是开发WinForm的,直接在WinForm的程序中引入WebService,然后调用一般的方法,就像使用net类库一样调用,然后用MessageBox弹出即可。 如果是WebForm,那么用jQuery的Ajax异步非常好。这里我不妨给你一个例子(如果你需要,请发送邮件到maledong@qq.com,主题“天气预报AJAX代码示例”) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JQuery AJAX示例代码</title> <script> $(function () { //先获取全部的省等地方(返回一个xml的string数组) $.ajax({ type: "post", url: "http://www.webxml.com.cn/webservices/weatherwebservice.asmx/getSupportProvince", datatype: "xml", success: function (result) { $(result).find("string").each( function () { //$(this).text()的“text”方法可以获取html容器和xml容器的文字 $("#selProvinces").append("<option value='" + $(this).text() + "'>" + $(this).text() + "</option>"); }); } }); //然后根据选择的省,加载所有的市 $("#selProvinces").change(function () { //清空所有项目 $("#selCities").empty(); //动态加载 $.ajax({ type: "post", timeout: 1200, url: "http://www.webxml.com.cn/webservices/weatherwebservice.asmx/getSupportCity", data: "byProvinceName=" + $("#selProvinces").val(), //给Service传递参数 datatype: "xml", //成功加载: success: function (result) { $(result).find("string").each(function () { $("#selCities").append("<option value='" + $(this).text() + "'>" + $(this).text() + "</option>"); }); } }); }); //根据动态选择的城市,查询对应的天气预报情况: $("#selCities").change(function () { $("#ulResult").empty(); //因为放到Dropdownlist中的选项是“名称(编号)”,所以只要名称 var foundcontent = $.trim($("#selCities").val().substring(0, $("#selCities").val().indexOf("("))); $.ajax({ type: "post", url: "http://www.webxml.com.cn/webservices/weatherwebservice.asmx/getWeatherbyCityName", data: "theCityName=" + foundcontent, datatype: "xml", //准备加载(注意:S必须大写!) beforeSend: function () { $("#spResult").css("display", "block"); }, //成功了…… success: function (result) { $(result).find("string").each(function () { //排除第三个图片输出 if ($(this).text().indexOf(".gif")>0) { $("#ulResult").append("
- <image src='Image/" + $(this).text() + "'/>"); } else { if($(this).text().indexOf(".jpg")<0) { $("#ulResult").append("
- " + $(this).text() + ""); } } }); }, //完成了…… complete: function () { $("#spResult").css("display", "none"); } }) }); }) </script> <style type="text/css"> #Select1 { width: 198px; } #selCities { width: 233px; } #selProvinces { width: 227px; } </style> </head> <body> 请选择你需要的省(市):<select id="selProvinces"> </select>
请选择你需要的区(县):<select id="selCities"> </select>
查询结果:请稍后…… -
你好,刚才那个帖子没有正常格式化,现在是格式化的帖子——
1)如果你使用WinForm,引入这个WebService然后调用,MessageBox输出结果即可。
2)如果是WebForm,jQuery的ajax非常适合你(异步的)——需要“天气预报”的示例代码问我要,maledong@qq.com,主题——“天气预报”AJAX示例代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JQuery AJAX示例代码</title> <!-- 本综合示例演示指定一个特定的,联动的Dropdownlist城市显示天气预报 1)程序一开始加载 --> <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.4.min.js" type="text/javascript"></script> <script> $(function () { //先获取全部的省等地方(返回一个xml的string数组) $.ajax({ type: "post", url: "http://www.webxml.com.cn/webservices/weatherwebservice.asmx/getSupportProvince", datatype: "xml", success: function (result) { $(result).find("string").each( function () { //$(this).text()的“text”方法可以获取html容器和xml容器的文字 $("#selProvinces").append("<option value='" + $(this).text() + "'>" + $(this).text() + "</option>"); }); } }); //然后根据选择的省,加载所有的市 $("#selProvinces").change(function () { //清空所有项目 $("#selCities").empty(); //动态加载 $.ajax({ type: "post", timeout: 1200, url: "http://www.webxml.com.cn/webservices/weatherwebservice.asmx/getSupportCity", data: "byProvinceName=" + $("#selProvinces").val(), //给Service传递参数 datatype: "xml", //成功加载: success: function (result) { $(result).find("string").each(function () { $("#selCities").append("<option value='" + $(this).text() + "'>" + $(this).text() + "</option>"); }); } }); }); //根据动态选择的城市,查询对应的天气预报情况: $("#selCities").change(function () { $("#ulResult").empty(); //因为放到Dropdownlist中的选项是“名称(编号)”,所以只要名称 var foundcontent = $.trim($("#selCities").val().substring(0, $("#selCities").val().indexOf("("))); $.ajax({ type: "post", url: "http://www.webxml.com.cn/webservices/weatherwebservice.asmx/getWeatherbyCityName", data: "theCityName=" + foundcontent, datatype: "xml", //准备加载(注意:S必须大写!) beforeSend: function () { $("#spResult").css("display", "block"); }, //成功了…… success: function (result) { $(result).find("string").each(function () { //排除第三个图片输出 if ($(this).text().indexOf(".gif")>0) { $("#ulResult").append("<li><image src='Image/" + $(this).text() + "'/></li>"); } else { if($(this).text().indexOf(".jpg")<0) { $("#ulResult").append("<li>" + $(this).text() + "</li>"); } } }); }, //完成了…… complete: function () { $("#spResult").css("display", "none"); } }) }); }) </script> <style type="text/css"> #Select1 { width: 198px; } #selCities { width: 233px; } #selProvinces { width: 227px; } </style> </head> <body> 请选择你需要的省(市):<select id="selProvinces"> </select><br /> 请选择你需要的区(县):<select id="selCities"> </select><br /> <hr /> 查询结果:<span id="spResult" style="display: none"><font color="red">请稍后……</font></span> <ul id="ulResult"> </ul> </body> </html>
- 已建议为答案 ThankfulHeart 2011年5月4日 3:07
- 取消建议作为答案 ThankfulHeart 2011年5月4日 5:21
-
我想实现这样一个需求;
web service主动调用某个客户端的函数,结果在客户端显示。比如,弹出一个对话框什么的。
注意:不是客户端发出请求,服务器端异步响应的这种。而是,服务器端主动去调用客户端。
可以在服务器端配置客户端吗?或者有其他更好的思路,望高手指点!
ASP.NET web Service无法支持。
WCF支持双工通信,我们也称作 发布订阅模式。服务可以回调那些订阅了改服务的客户端
阅读全文-->WCF分布式开发步步为赢(10):请求应答(Request-Reply)、单向操作(One-Way)、回调操作(Call Back).
Frank Xu Lei--谦卑若愚,好学若饥
专注于.NET平台下分布式应用系统开发和企业应用系统集成
Focus on Distributed Applications Development and EAI based on .NET
【老徐的网站】:http://www.frankxulei.com/
- 已标记为答案 amadok 2011年7月19日 2:54