如何使CMS和现有的asp.net应用程序在IIS中和平共处?

我们现有的公共网站由大量静态内容的asp.net页面和一些真实的web应用程序构成的虚拟目录组成。 我们现在正在考虑安装Umbraco ,它要求您将其安装在网站的根目录下。

由于CMS将位于网站的根目录,因此我认为在Umbraco下运行我们现有的页面和Web应用程序是一个坏主意(由于URL重写它执行并inheritanceweb.config设置等)。在我们过渡到CMS并在完成之后,我们是否能够一切和平共处?

我到目前为止唯一的想法是将CMS和应用程序设置为单独的网站,然后使用某种URL重写/反向代理来正确解决所有问题:

  • www.example.com将继续解决我们的旧主页
  • www.example.com/dept1将继续解决旧的dept1页面
  • www.example.com/dept2将parsing为CMS上新的dept2页面
  • www.example.com/app将parsing为现有的Web应用程序

我已经多次遇到过这种情况,除非你打算设置不同的子域,例如

最好将其安装在根目录下,并将其他应用程序设置为虚拟目录/应用程序。 您需要编辑每个子应用程序中的configuration文件,以添加到相关部分(连接string,命名空间)的顶部以停止configuration级联和testing,testing和testing。

如果您将每个子应用程序的根文件夹名称添加到umbracoreservedurls /目录,则URL重写不是这样的问题。

我知道这是一个痛苦 – 不幸的是,这只是Umbraco现在的工作方式。

我第二个尼尔的评论,但我会回答作为答案,以便我可以更好地格式化我的答复。

这是一个URL重写2.0规则:

RewriteCond Host: (www\.)?domain\.com RewriteRule (?!/domain)(.*) /domain$2 [I] 

把你的网站放在一个名为/ domain的文件夹中。 显然你可以改变URL和文件夹。

这确保了/ domain的任何内容都不会redirect,但是其他所有内容都可以。 这允许asp.netredirect,以及URL重写不知道的其他东西,仍然工作。