资讯专栏INFORMATION COLUMN

不改变中间层,如何玩转 .NET 的远程处理功能?

justjavac / 2967人阅读

摘要:具体点说,该方案展示了在不改变中间层应用程序的前提下,如何利用的远程处理功能,将应用与现存中间层架构结合起来。打开命令提示符并更改包含和示例的目录。

原文链接
https://msdn.microsoft.com/enus/library/aa289846(v=vs.71).aspx

Visual Studio .NET 2003

该方案展示了传统系统与托管代码的集成方法,以及这些传统系统如何使用核心 .NET 远程服务。具体点说,该方案展示了在不改变中间层应用程序的前提下,如何利用 .NET 的远程处理功能,将 .NET Web 应用与现存 Windows DNA 中间层架构结合起来。

如果你有现成的 Windows DNA 架构,并决定使用 ASP.NET 中的某些特性,但同时想保留在中间层 COM+ 业务和数据对象所做的「投资」,你可以用以下方式部署分布式架构。此外,正如下图中显示,用户服务系统 ASP.NET 代码、用户服务等等)完全独立于中间商业服务网络之外。

该方案的优点是:无需修改中间层代码。你现在可以关闭所有此前用于 Windows DNA 架构方案的 DCOM 端口,同时获得公共语言运行时(CLR)、Web Forms 和 ASP.NET 性能提升等优势。

要实现此方案(下面所描述的安装执行步骤),需要:

在 Web和应用程序服务器上安装 .NET Framework

在应用程序服务器上创建一个 Web 工程

将 remoting.cfg 文件复制到该 Web 工程的根目录中

将调用方程序集(assembly)复制到新建 Web 架构下的 in 目录下。

修改 Web服务器(客户端)的 web.config 文件以便使用Http/Binary格式。具体细节请参考 .NET Remoting.aspx)。

注意:对于 TCP/Binary,需要 exe 而非 Web 工程,并且这一点在安装说明中没有涉及。

关键点

Fitch 和 Mather 7.0 示例使用 HTTP/Binary 而非 HTTP/SOAP。之所以使用 HTTP,是因为需要通过80端口防火墙。之所以 Binary 而非 SOAP 是受性能影响。对于大量的数据,Binary 性能优于 SOAP。因此,如果处理大量数据(例如数组、数据集和数据表),使用 Binary 格式。如果处理小块数据,使用 SOAP 或者 Binary 格式并无多大差别。处理整数型数据亦然。如果远程调用是通过80端口从半可信位置发起,建议使用 SSL和 IPSec 以确保通信的安全。

注释: 该案例仅用于演示说明在 Fitch 和 Mather 7.0 环境下,.NET 远程处理与遗留 COM+ 组件的组合使用方法。在实践中,如果通信是横跨整个广域网(WAN),这种方案事实上是一个糟糕的设计。在本例中,分布式服务器仅用于演示 .NET 远程服务。对于 Fitch 和 Mather 7.0,这不是一种可取的分布式方案。此外,在本案例中,.NET Framework 必须安装在应用程序服务器上。

方案: .NET 与传统系统整合

安装

下面的安装过程展示了上图描述的多主机安装案例。

注意:该方案假设数据库安装在一个独立的服务器上。

执行安装:

确保所有的设备上都安装了 .NET Framework.

在 Web 服务器(点击查看单个设备配置方法.aspx))上安装 FMStocks7.MSI 或在应用程序集群控制器( Application Center Cluster Controller)上安装 FMStocks7 。

打开命令提示符并更改包含 Fitch 和 Mather 示例的目录。默认目录为:machinename[安装了Visual Studio .NET的驱动盘]:Program FilesMicrosoft Visual Studio .NET 2003Enterprise SamplesFMStocks7。

至此,可以在单个服务器或整个应用程序中心集群上安装 BLL:

单个服务器

在命令提示符上输入:

fms.exe deploy RemoteMachine=MachineX Path=c:FMStocks7_GAM Components=GAM

注意:更改参数以便其适合你的配置环境。输入 fms.exe 且不加参数会出现帮助。该过程会将应用程序的 GAM 安装到独立的远程服务器上。

在输入以上命令后,将会看到以下操作:

Stopping IIS

Creating Directories

Generating Configuration files

...

Starting IIS

Upon completion you should see:

Deployment successful

应用程序中心集群

在命令提示符上输入:

fms.exe deploy RemoteMachine=MachineX Path=c:FMStocks7_GAM Components=GAM RemoteUser=MachineXjdoe RemotePassword=password Cluster=nnn.nnn.nnn.nnn

注意:仅当在集群上部署时,才会使用集群参数。MachineX 必须作为集群控制器。该一过程会将应用程序的 GAM 安装到应用程序中心集群上。

请验证应用中心是否在应用管理控制台成功部署。在输入上述命令后,将看到以下操作:

Stopping IIS

Creating Directories

Generating Configuration files

...

Starting IIS

Upon completion you should see:

Deployment successful

或者,你可以添加以下命令行以复制程序中心集群中的 Web 主机,正如前面的图像所示:

fms.exe replicate

提示:在实际情况中,你可能希望通过其他方式自动化 Web 主机复制过程。例如,一个弹出对话框询问是否需要复制,或者使用管理控制台的管理单元。

启动应用程序并查看其版本号页面,验证安装是否成功。版本页面会显示安装了BLL、DAL 和 GAM 的主机名称。其中 GSM 应该安装在 MachineX 上。

安全要求

Fitch 和 Mather 示例必须安装在具有本地安全策略组 FullTrust 权限的的位置。本地驱动属于具有 FullTrust 权限的「Zone-MyComputer」安全策略组,而网络共享和映射网络驱动器则属于具有 LocalIntranet 权限的「Zone – Intranet」安全策略组。因此,如果你将示例安装到网络共享或者网络驱动器下,就必须给相应位置授予 FullTrust 权限。

右击桌面上的IE浏览器图标,在快捷菜单中选择「属性( Properties)」。

选择「安全(Security)」标签。

将网络共享或映射网络驱动器添加到设备可信站点。
注意:可信站点属于「Zone–Trusted」安全策略组。默认情况下,该策略组具有 Internet 权限而非 FullTrust 权限。

打开命令提示符并通过以下命令授予可信站点 FullTrust 权限:caspol -chggroup 1.5 FullTrust

OneAPM 助您轻松锁定 .NET 应用性能瓶颈,通过强大的 Trace 记录逐层分析,直至锁定行级问题代码。以用户角度展示系统响应速度,以地域和浏览器维度统计用户使用情况。想阅读更多技术文章,请访问 OneAPM 官方博客。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110417.html

相关文章

  • 使用 .NET 平台,如何玩转 Universal Windows 应用?

    摘要:开发人员经常设计自适应的以便其适应于不同设备不同形式。,目前库包括和,两者之前均不适用手机应用程序。快尝试下吧当处于模式中,应用程序通过新编辑器编译。例如在电脑桌面上,我的应用程序及其美观,但是在手机界面上,它仅仅显示状态栏。 2015年7月30日 本文作者是 Managed Languages 团队项目经理 Lucian Wischik。 不久前,Visual Studio 2015...

    NickZhou 评论0 收藏0
  • iOS相关

    摘要:多线程是通过提高资源网络请求之与的二次封装及意义之后,被苹果抛弃,该来的即便是迟些,但最终肯定会来。注意,不是线程安全的,但是线程安全的。也就是说,因为忙导致的触发时刻超出了的情况下,并不会取消,而不执行回调。 超简单!!! iOS 设置状态栏、导航栏按钮、标题、颜色、透明度,偏移等 // 一行代码搞定导航栏颜色navBarBarTintColor = .white// 一行代码搞定导...

    renweihub 评论0 收藏0
  • 深入浅出nodeJS - 4 - (玩转进程、测试、产品化)

    摘要:进程间通信的目的是为了让不同的进程能够互相访问资源,并进程协调工作。这个过程的示意图如下端口共同监听集群稳定之路进程事件自动重启负载均衡状态共享模块工作原理事件二测试单元测试性能测试三产品化项目工程化部署流程性能日志监控报警稳定性异构共存 内容 9.玩转进程10.测试11.产品化 一、玩转进程 node的单线程只不过是js层面的单线程,是基于V8引擎的单线程,因为,V8的缘故,前后...

    henry14 评论0 收藏0
  • 玩转Elasticsearch源码-使用Intellij IDEA和remote debug调试源代

    摘要:像工具就是用了这些功能达到魔术般的效果。是一个特定的可选实现,用来定义调试者与运行之间的通讯,它的是通过本地库的或者支持实现的。简单来说,会建立运行应用的和调试者本地或者远程之间的桥梁。 开篇 学习源码第一步就是搭建调试环境,但是看了网上大部分Elasticsearch调试方式都是配置各种环境变量然后直接启动Main方法,而且还各种报错。今天提供新的方式--remote debug来避...

    Youngs 评论0 收藏0
  • 7天教你玩转云服务器

    摘要:教学课程如何玩转云服务器云服务器是一种简单高效安全可靠处理能力可弹性伸缩的计算服务。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。云服务器租用产品送产权吗不送产权。教学课程:如何玩转云服务器云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器 。云服务器帮助您快速构建更稳定、安全...

    Labradors 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<