我们正在构建一个用于发布基于.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。答案 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不同节点上创建的服务是完全独立的应用程序,很难做一些会话共享工作。
我希望有人有更好的解决方案,