【发布时间】:2012-07-08 02:19:00
【问题描述】:
我们正在构建一个 asp.net 系统,用于发布基于 .net 的 Web 服务。
它有一个简单的逻辑:我们在 App_Data 文件夹下有多种 Web 服务模板。
例如,我们的应用程序 url 是:http://localhost/serviceManager
这是我们应用程序的文件夹:
App_Data
ws1.zip
ws2.zip
Bin
modules
service
web.config
注意:当第一次访问这个系统时,我们会检查是否 “服务”目录是 iis 中的“应用程序”。如果没有,我们会成功的。
通过我们的系统,用户可以逐步填写一些需要的信息(尤其是服务名称,例如“test”),我们收集起来以备后用。
然后我们在service目录下创建一个名为test的文件夹,然后我们找到相应的web服务模板(例如ws1.zip),解压到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
并且部署了一个新的网络服务,我们可以使用它来访问它:
http://localhost/serviceManager/service/test/service.asmx (note,the service.asmx exist in every template)
这是我们目前所能做的。
但是客户现在有进一步的要求:
1.将管理器系统与创建的服务分开。
由于客户希望将创建的服务映射到互联网,并将我们的管理器系统只保留在内网,这是为了安全。
如您所见,创建的服务放在我们的管理器应用程序下。我们需要将它们部署在不同的端口(在iis中,不同的端口意味着不同的网站,不是吗?)。
例如,我们的应用程序 url 不变:http://localhost/serviceManager
但是创建的服务会变成这样:http://localhost:8888/service/test/service.asmx
2。实现集群(尤其是创建的服务)
由于创建的服务是面向大众的,所以出于性能考虑,客户端需要集群。
但是,我们没有为 IIS 集群找到像 weblogic 这样的东西。所以我们认为唯一的方法是在创建服务后复制服务并将其放入具有相同端口的另一台服务器(集群节点)中,并且虚拟上下文名称。
如果是这样,我们需要在不同机器上的 iis 中创建“应用程序”作为我的帖子主题。
我们现在不知道,谁能给我们一些建议?
顺便说一句,我们必须支持 iis6 - iis7.5。
【问题讨论】:
-
如果您解决了自己的问题,您应该发布答案;这将为您提供代表点数,并可能获得新的 SO 徽章。
-
@DourHighArch:事实上我们没有一个成功和完整的解决方案。但正如你所说,我可以发布我们所做的。
标签: asp.net iis concurrency cluster-computing load-balancing