0

我们正在构建一个 asp.net 系统,用于发布基于 .net 的 Web 服务。

它有一个简单的逻辑:我们在 App_Data 文件夹下有多种 Web 服务模板。

例如,我们的应用程序 url 是:http://localhost/serviceManager

这是我们应用程序的文件夹:

App_Data
   ws1.zip
   ws2.zip
Bin
modules
service
web.config

注意:当第一次访问这个系统时,我们会检查“服务”目录是否是iis中的“应用程序”。如果没有,我们会成功的。

通过我们的系统,用户可以逐步填写一些需要的信息(尤其是服务名称,例如“test”),我们将它们收集起来以备后用。

test然后我们在该目录下创建一个名为的文件夹service,然后我们找到相应的Web服务模板(例如ws1.zip),将内容提取到该test文件夹​​中,然后我们根据我们得到的信息修改web.config文件。

最后我们在 IIS 中设置test为 a 。application

现在我们的应用程序的文件夹将改变如下:

App_Data
   ws1.zip
   ws2.zip
Bin
modules
service
  test
    App_Data
    service.asmx
    web.config(filled with gathered information)
web.config

并且部署了一个新的 Web 服务,我们可以使用它来访问它:

http://localhost/serviceManager/service/test/service.asmx (note,the service.asmx exist in every template)

这是我们目前所能做的。

然而,客户现在有进一步的要求:

1. 将管理器系统与创建的服务分开。

由于客户希望将创建的服务映射到 Internet 并将我们的管理器系统仅保留在 Intranet 上,这是为了安全起见。

如您所见,创建的服务放在我们的管理器应用程序下。我们需要将它们部署在不同的端口(在 iis 中,不同的端口意味着不同的网站,不是吗?)。

例如,我们的应用程序 url 不会改变:http://localhost/serviceManager

但是创建的服务会变成这样:http://localhost:8888/service/test/service.asmx

2.实现集群(尤其是创建的服务)

由于创建的服务是面向大众的,所以出于性能考虑,客户端需要集群。

但是,我们没有找到类似weblogicIIS 集群的任何东西。因此,我们认为唯一的方法是在创建服务后复制服务并将其放在具有相同端口和虚拟上下文名称的另一台服务器(集群节点)中。

如果是这样,我们需要在不同机器的 iis 中创建“应用程序”作为我的帖子主题。

我们现在不知道,任何人都可以给我们一些建议吗?

顺便说一句,我们必须支持 iis6 - iis7.5。

4

1 回答 1

0

我是这个问题的提问者。

我们现在还没有找到完美的解决方案。但是我们已经做了一些工作。

我们的 asp.net 应用程序已打包为窗口安装程序。安装应用程序后,将完成一些必要的工作:

1 在不同的端口创建两个网站,例如 8000(用于服务管理器)和 8001(用于创建的服务。

2 将8001网站的根目录设为windows共享文件夹。

3 部署一个名为IISManager. 此应用程序是一个 Web 服务,它将在网站根目录下创建一个文件夹作为 IIS 应用程序。

现在当用户访问:

http://ip:8000/servicemanager,并根据模板创建服务。

我们将做以下事情:

1 通过window共享文件夹将提取并配置好的文件夹复制到不同的集群节点。

2 一个一个调用IISManager服务,将step1的文件夹做成IIS应用。

现在如果步骤成功,我们可以访问新创建的服务:

http://ip:8001/servicename/service.asmx

这就是我们现在所做的。

但是我们仍然有很多问题:

1IISManager每次都不起作用,iis应用程序创建有时会失败。

2 在不同节点创建的服务是完全独立的应用程序,很难做一些会话共享工作。

我希望有人有更好的解决方案,

于 2013-07-13T01:54:16.790 回答