[ 来源:http://www.it55.com | 作者: | 时间:2007-09-29 | 收藏 | 推荐 ] 【大 中 小】
本节讲述Visual Studio 2005下使用ASP.NET+Ajax调用WCF服务的方法,这里需要对软件环境进行一些有针对性的配置。具体步骤如下: sflj http://www.it55.com kg^&fgd
环境检查及安装: 免费网页模版下载http://www.it55.com
1、安装.NET Framework 3.5 Beta 2。 免费设计素材下载http://www.it55.com
ASP.NET Ajax调用WCF服务需要.NET Framework 3.5 Beta 2中的System.Web.Extensions.dll(3.5.0.0),System.ServiceModel.Web.dll支持。
开始我安装的是.NET Framework 3.5 June 2007 Community Technology Preview (CTP),走了一些弯路。
IT资讯之家 http://www.it55.com
2、安装Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF)。 免费网页模版下载http://www.it55.com
3、检查IIS是否有.svc到c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll的映射,如果没有,建立映射,建立时取消“检查文件是否存在”的选择。 it55.com
开始:
45398 http://www.it55.com it55学习IT知识,享受IT生活 4dfkjn
1、在VS 2005中新建一个Web Site项目。
添加web.config,将改为。
it55.com
2、在该项目中添加一个WCF Service,命名为CNBlogsWCFService.svc。 免费壁纸下载http://www.it55.com
45398 http://www.it55.com it55学习IT知识,享受IT生活 4dfkjn
免费网页模版下载http://www.it55.com
免费壁纸下载http://www.it55.com
3、修改App_Code中CNBlogsWCFService.cs的代码: 免费矢量图片素材下载http://www.it55.com
[ServiceContract(Namespace = "http://www.cnblog.com/")]
public interface ICNBlogsWCFService
{
[OperationContract]
string AddToFavorites(string blogID, string postID);
}
public class CNBlogsWCFService : ICNBlogsWCFService
{
public string AddToFavorites(string blogID, string postID)
{
return string.Format("收藏成功!BlogID:{0},PostID:{1}", blogID, postID);
}
} 免费壁纸下载http://www.it55.com
如果想进一步了解上述代码,请参考: http://www.it55.com在线教程
Artech:[原创]我的WCF之旅(1):创建一个简单的WCF程序
Bruce Zhang:Windows Communication Foundation入门(Part Two)
4、修改CNBlogsWCFService.svc的代码: http://www.it55.com
增加:
免费设计素材下载http://www.it55.com
Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory。
免费网页模版下载http://www.it55.com
改为:
免费设计素材下载http://www.it55.com
<%@ ServiceHost Language="C#" Debug="true" Service="CNBlogsWCFService" CodeBehind="~/App_Code/CNBlogsWCFService.cs" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"%><%@ ServiceHost Language="C#" Debug="true" Service="CNBlogsWCFService" CodeBehind="~/App_Code/CNBlogsWCFService.cs" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"%>
Factory是.NET Framework 3.5 Beta 2中增加的,而我们用的是Visual Studio 2005 extensions for .NET Framework 3.0,所以要手动加上。
45398 http://www.it55.com it55学习IT知识,享受IT生活 4dfkjn
如果不通过Ajax调用WCF,需要设置为:Factory="System.ServiceModel.Web.WebServiceHostFactory"。
5、开始第一次运行,访问http://localhost/AjaxWCFDemo/CNBlogsWCFService.svc,会出现如下页面: http://www.it55.com在线教程
IT资讯之家 http://www.it55.com
6、继续运行,访问http://localhost/AjaxWCFDemo/CNBlogsWCFService.svc/js,你会看到自动生成访问WCF的客户端代理脚本。
http://www.it55.com
7、OK!服务器端的WCF已经准备好了,下面就开始客户端的访问。 http://www.it55.com在线教程
8、配置ASP.NET Ajax,在web.config中进行设置: 45398 http://www.it55.com it55学习IT知识,享受IT生活 4dfkjn
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<compilation debug="false">
<assemblies>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
<authentication mode="Forms" />
<httpHandlers>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
vd;k;l http://www.it55.com rdfg
注意:要设置为3.5版本的System.Web.Extensions,如果使用asp.net ajax 1.0会得不到调用WCF服务返回的结果。
(编辑:IT资讯之家 www.it55.com)