如何处理Remoting中报Binary Fomatter版本冲突问题
问题:
采用IIS进行远程代理对象调用时,如果传递的信息格式采用Binary Fomat而不是soap时,则有可能报这个错误。
该错误报错的信息如下:“BinaryFormatter 版本不兼容。应为版本 1.0。接收到的版本为 1818838574.1953451621。”
原因:
引起该错误的原因其实不是版本冲突问题,一般错误是由于服务器端产生错误,IIS将该错误以网站方式处理成404,500等相应错误提示信息,并发送给客户端,而客户端接收到错误信息时,则按BinaryFormatter方式处理,这样,客户端在处理错误信息时,遇到了<html>...时就会报出该错误。
解决方法:
可采用工具在服务器端捕捉服务器端抛出的异常信息是什么,根据该信息处理错误。
捕捉服务器及客户端的通讯信息软件很多,我用的是www.pocketsoap.com的TcpTrace工具,在服务器端运行TcpTrace,将Listen Port改为81,并开始监听,在另一台客户端电脑上,修改客户端软件的Chennel Port为81,如果是配置文件,则应修改配置文件内容,运行客户端软件,并启动。TcpTrace将捕捉所有通讯信息,包括异常。
根据异常修改程序即可。
在客户端要首先判断是否可以访问到服务器端的Remoting对象,判断方法如下:
在客户端启动IE浏览器,并在地址栏输入:“http://RemotingServerSite/RemotingService/ServiceClass.rem?wsdl”,以上的RemotingServerSite为服务器地址,RemotingService为IIS上的虚拟目录名称,ServiceClass则为服务器端的远程对象类名。
如http://localhost/NetDraw/Paper.rem?wsdl
www.pocketsoap.com的TcpTrace工具,在服务器端运行TcpTrace,将Listen Port改为81,并开始监听,在另一台客户端电脑上,修改客户端软件的Chennel Port为81,如果是配置文件,则应修改配置文件内容,运行客户端软件,并启动。TcpTrace将捕捉所有通讯信息,包括异常。
根据异常修改程序即可。
在客户端要首先判断是否可以访问到服务器端的Remoting对象,判断方法如下:
在客户端启动IE浏览器,并在地址栏输入:“http://RemotingServerSite/RemotingService/ServiceClass.rem?wsdl”,以上的RemotingServerSite为服务器地址,RemotingService为IIS上的虚拟目录名称,ServiceClass则为服务器端的远程对象类名。
如
http://localhost/NetDraw/Paper.rem?wsdl 以上仅讨论Remoting采用WellKnownType的情况。
分享到:
相关推荐
使用.NET Remoting从服务器主动发出事件通知客户端(远程广播) 经常看见有人问:使用.NET Remoting...在.NET Remoting中你可以方便的采用事件注册远程回调函数,并方便的利用这种机制将服务器端信息广播到客户端。
《高级.NET Remoting第二版》是一本深入探讨微软.NET框架中的远程通信技术的专著,由Ingo Rammer和Mario Szpuszta合著。本书是.NET开发人员、架构师和技术爱好者的重要参考资料,旨在帮助读者理解和掌握.NET ...
.NET Remoting是微软.NET框架中的一个关键组件,它允许不同进程甚至不同计算机之间的对象进行通信,极大地扩展了.NET应用程序的能力。这份资源包含了源码,对于学习者来说,这是一次难得的实战机会,可以深入理解...
- **设计分布式任务分配应用**:本书通过一个具体的案例——分布式任务分配应用的设计,展示了如何利用.NET Remoting技术解决实际问题。这包括定义应用的架构、选择合适的技术栈以及规划通信协议等。 - **实现任务...
.NET Remoting是微软.NET框架中的一种技术,用于在不同的应用程序域(AppDomain)之间实现对象间的通信,甚至跨越网络。...了解和掌握.NET Remoting的基础知识,对于理解和解决旧系统中的问题仍然很有价值。
VB.NET Remoting是.NET框架中的一种核心技术,它允许在不同应用程序域(AppDomain)之间进行对象间的通信,甚至是跨越网络的通信。这个技术为分布式应用提供了强大的基础,使得开发者能够构建可扩展、高性能且安全的...
.NET Remoting是微软.NET框架提供的一种通信机制,用于在不同应用程序域(AppDomain)之间进行交互,甚至可以跨越网络。...在学习.NET Remoting示例时,不仅要注意基本操作,还要关注性能优化和实际应用中的问题解决。
随着技术的发展,虽然.NET Remoting在新的.NET Core和.NET 5及更高版本中逐渐被WCF和gRPC等其他技术取代,但在理解.NET框架的历史和学习分布式系统设计方面,.NET Remoting仍然是一个有价值的学习主题。
VB.NET Remoting是在.NET Framework中实现远程过程调用(RPC)的一种方法,它提供了跨进程、跨计算机的透明通信。Remoting使得对象可以在本地或远程环境中被创建、访问和操作,就像它们都在同一个进程中一样。它支持...
.NET Framework 2.0中的.NET Remoting是一种强大的技术,它允许不同进程间的对象通信,甚至跨越不同的计算机。在本文中,我们将深入探讨.NET Remoting的实践应用,特别是下篇部分,我们将关注更高级的主题和技巧。 ...
.NET Remoting 提供了一种机制,让不同进程中的对象可以通过远程调用来相互访问。 2. **服务发布**:.NET Remoting 支持在服务器上托管对象,并允许客户端通过 Remoting 连接来访问这些对象。这种机制允许服务器...
在 ASP.NET 应用程序中使用 .NET Remoting 可以方便地创建和管理远程对象。通过这种方式,可以轻松地将 ASP.NET Web 服务与 .NET Remoting 结合起来,提高应用的灵活性和可扩展性。 #### 七、使用 Soapsuds 访问...
.NET Remoting是微软.NET框架中的一种技术,用于在应用程序之间创建高效的通信机制。它允许不同进程甚至不同计算机上的对象相互通信,就像它们在同一个内存空间内一样。本范例代码将帮助我们理解.NET Remoting的基本...
Microsoft .NET RemotingMicrosoft .NET Remoting Microsoft .NET RemotingMicrosoft .NET Remoting Microsoft .NET RemotingMicrosoft .NET Remoting
在《使用.NET Remoting 建立分布式应用程序(六):使用.NET Remoting 创建五子棋对战游戏(下)》这篇文档中,很可能会详细介绍如何利用.NET Remoting来实现一个五子棋游戏的分布式版本。这通常会涉及到以下步骤: 1. ...
.NET Remoting是微软.NET框架提供的一种通信机制,它允许不同应用程序域(AppDomain)之间的对象交互,无论是位于同一台计算机上还是分布在不同的网络环境中。在这个".NET Remoting Demo(TCP)"示例中,我们将深入...
在这个“基于.NET Remoting的局域网聊天室”项目中,开发者利用.NET Remoting的技术创建了一个允许局域网内用户进行实时交流的平台。 首先,我们要理解.NET Remoting的核心概念。它提供了一种透明的方式,使得对象...