知识大全 .Net整合其他平台的一些探讨[1]
Posted 知
篇首语:读书百遍,其义自见。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .Net整合其他平台的一些探讨[1]相关的知识,希望对你有一定的参考价值。
.Net整合其他平台的一些探讨[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
整合分布式应用程序经常是一件非常困难并且错综复杂的任务 即使是最富有经验的开发者也可能会觉得头疼 当应用程序在不同的操作系统以及涉及不同的程序平台时 这个集成问题变得尤其复杂 虽然说 Web服务承诺可以减轻程序员完成集成任务的困难程度 但是也可能给程序员们带来一些意想不到的麻烦 在这里我们将把一个ASP net应用程序和一个PHP Web服务连结起来 以学习一些整合分布式应用程序的方法 以及必要的应对措施 包括运行什么以及不用去做什么
这个Web服务在一个Apache服务器上运行 并且使用PHP开发 它从各种微软新闻组检索新闻摘要以及它们的关联的文本 即使由这个服务提供的数据可以直接使用内部的 Net对象存取 但是这个服务还是将使用并提供一个连接到非 Net平台上的不错的演示 我们这里要讨论的实例基于 Net beta 版
创建一个Web服务代理
Visual Studio NET提供了一个出色的机制用于自动地生成可用于存取远程Web服务的代理对像 因此 要首先尝试使用这些函数来导入由PHP服务提供的Web服务描述语言(Web Services Description Language WSDL)文件 还可以使用 Net SDK的WSDL exe命令行公用程序 不幸的是 在使用VS net向导导入WSDL之后 并不能成功地创建一个代理 所以我必须把导入原始的WSDL文件后由VS Net生成的文件转换为WSDL
◆把模式域名空间从// w / /XMLSchema改成// w / /XMLSchema 然后清除所有的当WSDL导入过程中由VS Net添加的 q 域名空间
◆删除 xmlns:tm=//microsoft /wsdl/mime/textMatching/和xmlns: mime= //schemas xmlsoap /wsdl/mime/ 名字空间 因为这个应用程序中不需要包含这些
◆删除类型元素 因为原始的 WSDL文档 并没有包含Web服务的模式信息的指定的元素区段
◆改变输入输出元素消息属性值为包含tns域名空间前缀的形式:
以下为引用的内容
<portType name= nntpSoapPortType > <operation name= getheaders parameterOrder= newsgroup numitems >
<input message= tns:getheaders />
<output message= tns:getheadersresponse />
</operation>
<operation name= getarticle parameterOrder= newsgroup article >
<input message= tns:getarticle />
<output message= tns:getarticleresponse />
</operation>
</portType>
在进行了下面的这些微小的改变 VS Net向导能够读取WSDL并且自动地生成一个代理 在编译了这个代理之后 它被包含在一个ASP NET页面中 然而 当这个ASP Net页面被执行 message does not have a correct SOAP root XML tag 这个错误被当作一个SOAP错误从Web服务中返回
为了精确地评估这个错误 代理调用被一个名为Proxy Trace的公用程序使用 以便代理生成SOAP包装 这可以通过把下列代码添加进ASP Net页面来实现
msNews Proxy = new System Net WebProxy( //localhost: );在察看了由 Net代理生成的SOAP包装之后 我有点奇怪为什么会返回这个错误 因为实际上一个相对的SOAP包装被生成并被发送到Web服务 即使在尝试了好几个转化成代理代码之后这个错误依然持续 代码段列表 显示了从PHP Web服务返回的完整的SOAP错误包装
在使用VS Net中创建的代理对象的好几个把ASP Net页面与PHP Web服务连结的不成功的尝试之后 我决定从头开始创建SOAP包装以便执行更有效的程序调试 起先 它看起来好像由 Net代理生成的模式域名空间可能是问题的关键 因为 Net使用 模式规范而PHP服务使用的是 版本的规范
然而 我把自定义的SOAP包装改为用 版本代替 版本 错误依然存在 在尝试了好几个其他的小的改变之后 我决定把SOAP包装使用的域名空间前缀和正文元素从soap (由 Net代理生成)改为SOAP ENV 因为我看见在SOAP错误信息中返回了SOAP ENV前缀 (见代码 )这表面上看上去微不足道的改变竟解决了问题!当处理任何请求的时候 PHP服务显然需要SOAP ENV前缀 而拒绝不包含SOAP ENV前缀的要求
cha138/Article/program/net/201311/15523相关参考
.Net整合其他平台的一些探讨[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 创建一个自定
把.Net整合进其他平台 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!整合分布式应用程序经常是一件
在编程序(特别是WinForm时)经常会遇到一些需要加以保护的资源文件比如一些数据库文件图片文件等等我们希望能被自己的程序访问但是又不希望别人把我们辛辛苦苦收集来的数据被别人毫不费力地用于自己的程序中
VC++.NET开发环境整合技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 主窗口内的每一个
ASP.NET中整合JavaScript的技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 尽
知识大全 用Web Services来整合.NET和J2EE
用WebServices来整合.NET和J2EE 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
深入探讨.NET中的钩子技术[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一介绍 本文
.NET跨平台的第一步 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! NET跨平台的第一步
建立ASP.NET开发平台 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 了解整个NET架构后接
.NET平台2008年大事记 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Silverligh