在不同机器上的IIS中的不同网站上创建应用程序

时间:2012-07-08 02:19:00

标签: asp.net iis concurrency cluster-computing load-balancing

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

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

例如,我们的应用网址为:http://localhost/serviceManager

这是我们申请的文件夹:

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

注意:如果首次访问此系统,我们将检查是否   “service”目录是iis中的“application”。如果不是,我们就会成功。

通过我们的系统,用户可以逐步填写一些必需的信息(特别是服务名称,例如“测试”),我们将它们收集起来供以后使用。

然后我们在test目录下创建一个名为service的文件夹,然后我们找到相应的Web服务模板(例如ws1.zip),extract是test文件夹的内容,然后我们相应地修改web.config文件。

最后,我们在IIS中将test设置为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。将经理系统与创建的服务分开。

由于客户希望将创建的服务映射到互联网并仅将我们的经理系统保留在内部网上,因此这是为了安全。

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

例如,我们的应用程序网址不会更改:http://localhost/serviceManager

但创建的服务将更改为:http://localhost:8888/service/test/service.asmx

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

由于创建的服务是面向大量的,因此对于性能考虑,客户端需要集群。

但是我们没有为IIS集群找到类似weblogic的内容。所以我们认为只有在创建服务后才能创建服务的副本,并将其放在具有相同服务的另一个服务器(集群节点)中端口和虚拟上下文名称。

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

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

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

1 个答案:

答案 0 :(得分:0)

我是这个问题的提问者。

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

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

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

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

3部署名为IISManager的iis应用程序。此应用程序是一个Web服务,它将使Web站点根目录下的文件夹成为IIS应用程序。

现在,当用户访问:

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

我们将做以下事情:

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

2逐个调用IISManager服务,使步骤1中的文件夹成为IIS应用程序。

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

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

这就是我们现在所做的。

但我们仍有很多问题:

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

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

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