仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 731|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET编程:jQuery挪用WCF必要注重的一些成绩仓酷云

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:16:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
以前学了大概半年时间的asp(没有机会做大系统,最多是自己对公司系统做些调整和修改还有一些小程序)。应该说开始接触asp.net是今年元月5号的事。现在很想把公司的系统重新用.net来架构,却不知道如何下手。今天,博客园首页增添了Digg功效。在该功效中我们入手下手实验利用jQuery间接挪用WCF。之前我们接纳的计划是jQuery挪用WebService,然后WebService再挪用服务层。如许挪用次要是由于之前必要挪用分歧域名下的WCF服务,由于跨域挪用的成绩,就要经由过程WebService直达一下。而此次Digg功效挪用的是统一个使用程序下的WCF,用jQuery间接挪用WCF是更好的选择。在实验这类体例的过程当中碰到的一些成绩和一些必要注重的中央必要纪录一下,以是就写了这篇漫笔。
  xland的jQuery调WCF给了我们很年夜匡助,在这里感激xland!在探究手艺的过程当中,将本人办理成绩的履历纪录上去,不但能够备忘、总结,并且能够匡助碰到一样成绩的伴侣,这也是写博客的一种兴趣吧。
  进进正题,jQuery挪用WCF必要注重的一些成绩:
  1.WCF的设置(WCF服务宿主于IIS7)
  1)WCF服务相干设置:
  在必要挪用的接口办法(OperationContract)上加上属性[WebInvoke(RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.WrappedRequest)],好比:


[ServiceContract]
publicinterfaceIDiggService
{
[OperationContract]
[WebInvoke(RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.WrappedRequest)]
stringGetDiggCountList(stringentryIdList);
}


  给服务虚现类加上属性:
[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]
publicclassDiggService:IDiggService
{
}
  不然挪用时会呈现毛病:“IIS7.0DetailedError-500.0-System.ServiceModel.ServiceActivationException”。

2)Web.config中的WCF相干设置:


<system.serviceModel>
<services>
<servicename="DiggService">
<endpointaddress=""binding="webHttpBinding"contract="IDiggService"behaviorConfiguration="DiggServiceBehavior"/>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behaviorname="DiggServiceBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>


  必要注重两个中央的设置:
  a)binding="webHttpBinding",入手下手设置为binding="basicHttpBinding",呈现毛病提醒:
TheendpointatDiggService.svcdoesnothaveaBindingwiththeNoneMessageVersion.System.ServiceModel.Description.WebScriptEnablingBehaviorisonlyintendedforusewithWebHttpBindingorsimilarbindings.
b)<enableWebScript/>,启用这个设置才干让WCF撑持Ajax挪用,不然挪用时WCF会前往如许的毛病:
ThemessagewithToDiggService.svc/GetDiggCountListcannotbeprocessedatthereceiver,duetoanAddressFiltermismatchattheEndpointDispatcher.CheckthatthesenderandreceiversEndpointAddressesagree.
  2、客户端jQuery挪用注重
  入手下手依照挪用WebServcie的体例挪用:


$.ajax({
url:/wcf/DiggService.svc/GetDiggCountList,
data:{"entryIdList":"+entryIdList+"},
type:post,
dataType:json,
contentType:application/json;charset=utf8,
success:function(data){
if(data.d){
}
}
},
error:function(xhr){
alert(xhr.responseText);
}
});  


  在FireFox中能乐成挪用,但在IE8和GoogleChrome中,挪用后前往的倒是IIS7的毛病信息:IIS7.0DetailedError-400.0-BadRequest。
  厥后将contentType:application/json;charset=utf8改成contentType:text/json成绩就办理了。
  jQuery挪用WebService与WCF另有一个分歧的地方在参数格局的处置上:
  好比下面代码中的data:{"entryIdList":"+entryIdList+"},假如将参数名的双引号往失落,即data:{entryIdList:"+entryIdList+"},能够一般挪用WebService,挪用WCF会呈现Json反序列化的非常。
  3、其他必要注重的中央
学习asp.net两个月有余了,除了对html、web控件比较熟悉(应该是说都能理解和接受)之外,竟不知道自己还会什么。看了两本书:《精通asp.net网络编程》(人民邮电出版社)、《asp.net实用案例教程》(清华大学出版社)。
再现理想 该用户已被删除
沙发
发表于 2015-1-20 18:58:47 | 只看该作者
主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。
柔情似水 该用户已被删除
板凳
发表于 2015-1-25 12:54:09 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
山那边是海 该用户已被删除
地板
发表于 2015-2-2 22:08:01 来自手机 | 只看该作者
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
变相怪杰 该用户已被删除
5#
发表于 2015-2-8 09:58:18 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
分手快乐 该用户已被删除
6#
发表于 2015-2-22 14:45:48 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
若天明 该用户已被删除
7#
发表于 2015-3-12 21:54:37 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
蒙在股里 该用户已被删除
8#
发表于 2015-3-13 04:10:53 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
老尸 该用户已被删除
9#
发表于 2015-3-20 12:30:48 | 只看该作者
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 13:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表