学习之路十四:浅谈客户端调用WCF服务的几种方法
最近在项目中接触到了WCF的一点知识,那就是如何调用WCF服务。网上查了一些资料,很快就搞清楚了,但是并没有达到团长的要求,主要有以下几个方面:。①WCF的地址将会发生变化。虽然地址变了,但是里面的逻辑没有变!② 不要引用WCF服务的接口DLL文件,这会导致一定程度的耦合!5 object[] obj = new object[2] { clientName, clientName };
最近在项目中接触到了WCF的一点知识,那就是如何调用WCF服务。 网上查了一些资料,很快就搞清楚了,但是并没有达到团长的要求,主要有以下几个方面:
①WCF的地址将会发生变化。 虽然地址变了,但是里面的逻辑没有变!
② 不要引用WCF服务的接口DLL文件,这会导致一定程度的耦合(尽管接口一旦指定就不会改变)!
1.手动配置服务(这种方法比较笨)
这种方法比较简单,我就不多说了,直接给个地址:学习WCF(六)--学习调用WCF服务的各种方法
2、引用接口DLL,通过地址动态调用WCF服务
1 private void ReleasePC(string clientName, string ttgServiceURL)
2 {
3 try
4 {
5 object[] obj = new object[2] { clientName, clientName };
6 string str = (string)ExecuteMethod(ttgServiceURL, "ReleasePC", obj);
7 BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None) { MaxReceivedMessageSize = 6666 };
8 EndpointAddress address = new EndpointAddress(ttgServiceURL);
9 ChannelFactory ttgService = new ChannelFactory(binding, address);
10 string result = ttgService.CreateChannel().ReleasePC(clientName, clientName);
11 GatewayReturnDef returnDef = JSONSerializer.FromJSON(result);
12 if (returnDef.Result)
13 LoggingManager.WriteLog(LogLevel.Information, new LogSeparator("\r\n"), "Release pc success.");
14 else
15 LoggingManager.WriteLog(LogLevel.Error, new LogSeparator("\r\n"), "Release pc failed.");
16 }
17 catch (Exception exception)
18 {
19 LoggingManager.WriteLog(LogLevel.Exception, new LogSeparator("\r\n"), "Error when invoke ReleasePC throw exception.", exception.Message, exception.InnerException);
20 }
21 }
注意:该方法需要引用WCF服务提供的元数据,即接口DLL的引用。 如果我在接口添加中添加了一个方法,那么我引用的接口DLL也必须改变,这就导致了这两种情况是不允许发生的,但是并不是说不允许使用,因为大多数情况下接口一旦确定就不会改变,所以不用担心接口DLL的改变!
注意:你也可以将这样的方法写成泛型类型,这样它的扩展性会变得更好!
3、通过地址获取元数据,动态生成代理类,调用WCF服务
1 private void ReleasePC(string ttgServiceURL, object[] args)
2 {
3 try
4 {
5 string serviceURL = ttgServiceURL + "/?wsdl";
6 DynamicProxyFactory factory = new DynamicProxyFactory(serviceURL);
7 DynamicProxy dynamicProxy = factory.CreateProxy("IGatewayWebService");
8 string result = (string)dynamicProxy.CallMethod("ReleasePC", args);
9 GatewayReturnDef returnDef = JSONSerializer.FromJSON(result);
10 dynamicProxy.Close();
11 if (returnDef.Result)
12 LoggingManager.WriteLog(LogLevel.Information, new LogSeparator("\r\n"), "Release pc success.");
13 else
14 LoggingManager.WriteLog(LogLevel.Error, new LogSeparator("\r\n"), "Release pc failed.");
15 }
16 catch (Exception exception)
17 {
18 LoggingManager.WriteLog(LogLevel.Exception, new LogSeparator("\r\n"), "Error when invoke ReleasePC throw exception.", exception.Message, exception.InnerException);
19 }
20 }
注:如果以上两种方法都不能满足项目的需求,那么这是最后的武器,但是它的性能有点差,因为必须先获取元数据,然后自动生成代理类,所以性能较差不会好的!
该方法是通过服务地址获取WCF的元数据(wsdl),然后在客户端动态生成代理类(第一种情况代理类已经帮我们生成了,第二种情况的元数据为不够好。代理类,第三种既没有元数据,也没有代理类),所以重点是获取WCF服务的元数据!
通过前人提供的公共类库,我们可以轻松获取WCF服务改进的元数据。 以下是生成动态生成代理类的工程文件: 动态创建WCF服务代理类
注意事项(如果使用第三种方式获取元数据,需要注意以下问题):
如果你是分布式服务,服务器的URL地址不能使用“localhost”地址,因为它是一个返回地址“127.0.0.1”,所以必须改为局域网地址或者公网地址,即非常重要,是的,你必须避免...
急需学习WCF,o(∩_∩)o哈哈...
摘要:随着互联网技术和网络经济的发展,我国已进入计算机网络时代,传统会计面临向网络会计转型。 传统的会计信息系统已经不能满足当前社会发展环境的需要。 因此,本文分析网络环境下我国会计信息系统存在的问题,阐述完善网络会计信息系统的具体措施,具有重大的现实意义。
关键词:网络环境; 会计信息系统; 问题; 对策
由于网络技术的成熟发展和会计信息时代的到来,越来越多的会计信息传输和处理方式突破了时间和空间的限制,体现出其便捷、高效的特点。 传统会计正在经历巨大的变革,以适应网络时代的经济发展。 目前,企业使用的会计信息系统主要依托于网络化、信息化的互联网环境。 因此,会计信息系统还存在一些问题。 阻碍。
1 网络环境下会计信息系统发展问题分析
虽然网络化会计信息系统将企业会计信息的管理和处理带到了一个新的水平,但在其发展的背后,必须面对网络带来的问题,承担其带来的风险。 随着现代网络的发展势头越来越高,网络会计信息系统在各企业中的应用越来越广泛,但由于使用系统水平的发展与现代的发展速度并不相符。网络方面,仍有一定差距。 无论是会计人员还是网络本身都需要不断完善和发展,从会计信息安全、失真、会计人员水平三个方面进行分析,寻求有效的决策。
1.1 会计信息的安全问题
互联网是一个高开放性、高连通性、高共享性的网络环境。 所有数据信息的传输都需要通过网络来进行。 这种高度开放的网络环境使得会计信息可以通过网络技术被截取和获取。 泄露或篡改会导致企业决策被竞争对手获知或因应用错误的会计信息而导致企业决策失误,从而对企业的发展造成很大影响。 另外,会计信息系统是建立在计算机系统基础上的,因此计算机安全是会计信息系统安全的重要保障。 目前的现状是由于会计信息系统专业人才的缺乏。 有时企业在没有会计信息系统人员的情况下运行会计信息系统,最终导致会计数据错误、丢失或篡改的风险。 此外,还有一些中小企业,为了省钱,不愿意组织内部人员自行发展,给企业自身的安全带来隐患。 除了上述人为原因外,会计信息系统本身也会因为网络问题或通讯问题而出现一些故障,导致企业信息泄露或毁坏。
1.2 会计信息失真
会计信息失真是指相关经济活动无法如实获取会计信息和数据中有效、真实、完善的相关信息。 会计信息失真主要有两个方面:一方面,来源渠道存在问题; 另一方面,会计人员素质不高。 会计信息失真的最根本原因是企业内部管理结构存在问题,内部管理不完善或缺失会严重影响信息的真实性。 企业必须引起重视。 有效控制企业会计信息失真。 一些公司为了追求自身利益而上传虚假会计信息。 由于网络监管无法全面掌握企业的实际经营状况,这些虚假的财务信息、负债信息、经营信息可能会影响通过网络平台了解合作企业的其他各方。 对企业有误导作用。 该系统的网络化特性使得这些信息很容易被篡改。 只需要掌握一定的计算机技术和相关操作能力,就可以不留痕迹地更改会计信息。
1.3 会计从业人员水平不足
在传统的会计模式中,对会计人员没有计算机网络的要求,只需要熟悉会计知识的使用,而会计人员对相关操作的了解非常肤浅。 然而,在会计信息系统下,现代网络会计信息系统的建立已经适应了信息现代化的要求,因此对计算机的使用要求比较高,要求会计人员不仅要掌握必要的专业知识,还要具备一定的专业知识。精通计算机知识,能够操作和解决问题。 会计信息系统中遇到的诸多问题。 随着网络的发展,公司会计业务量增多、处理范围扩大,对从业人员提出了新的要求。 不仅要了解会计系统的理论知识,还要掌握网络会计在管理、财务等诸多方面的相关功能。 为了使工作更加快捷、方便,公司财务人员可以随意以系统管理员的身份登录服务器,也可以以操作员的身份进入财务会计系统。
2 对策
2.1增强会计信息系统的安全性
会计信息系统的风险主要来源于会计信息系统的内部缺陷。 加强会计信息系统的安全防范是保障企业内部信息完整性的重要措施,安全防范尤为重要。 在这种情况下,应建立一套适合信息技术发展的安全保障体系,加强网络会计信息系统的安全。 保护力度是重中之重。 企业不仅需要加强内控管理和数据控制,还需要会计人员记录系统故障等情况,并将数据存档,以备事后参考和解决。 同时,技术维护人员还应定期检查是否有新的漏洞和缺陷。 安全意识是确保会计信息不泄露的基础。 首先,如果条件允许,可以聘请专业技术人员设计适合自己公司的会计信息系统; 其次,设置防盗防盗程序,并为应用系统设置相应的防火墙,并利用这些技术来提高系统性能。 最后,设置密码和访问权限,防止未经授权的用户登录会计信息系统篡改、删除会计信息,降低信息泄露的风险。 同时,定期的维护工作也可以保证系统运行的效率,避免因网络漏洞造成的信息泄露。
2.2 会计信息失真问题的解决
首先,会计信息失真的客观存在需要国家干预进行有效管理,通过完善相关法律法规减少违规行为的发生,并采取强制有效的措施降低内部会计信息失真的概率。 同时,加强对重要会计信息质量真实性的监督和审查,严厉查处一切利用非法手段影响企业会计信息真实性的行为。 其次,开发者在信息系统上应尽可能灵活、多样化。 企业在建设数据库时,应该获取广泛的有效数据源,然后利用它来丰富自己的数据库,为会计信息系统融入整个企业信息管理乃至管理提供基础。网络体系的完善,也使得会计准则等规范体系的作用更加有效。 保证玩大。
2.3加强专业人才培养,加强会计人才教育
网络会计系统不同于传统的手工记账、记账系统,因此催生了系统管理、系统维护等许多新的会计岗位。 这对会计师的专业知识、网络知识甚至法律意识都有非常高的要求。 因此,企业应定期对现有会计人员进行网络会计操作实战培训,以提高员工的业务水平,使其熟练掌握。 运营网络会计信息系统,及时补充网络会计相关的学习内容,使会计人员尽快适应网络会计的使用。 为了避免错误操作造成的危害,定期对相关会计人员进行技术培训。 对于企业来说,应建立一套基本流程,明确人员职责分工,确保每项任务都有专人负责,对整个会计信息系统进行规范化、程序化管理。
参考
[1] 王艳. 网络环境下会计信息系统内部控制[J]. 财务与会计,2015(3)。
[2] 刘润龙. 网络环境下会计信息系统安全研究[J]. 中国经营报,2015(8)。
[3] 陈春梅. 网络环境新形势下会计信息安全问题研究[J]. 购物中心现代化,2013(32)。
[4] 王金玲,李江霞,刘晓红。 加快秦皇岛市中小企业信息化建设研究[J]. 企业会计,2012(24)。