首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >托管一个具有多个虚荣心路由的应用程序

托管一个具有多个虚荣心路由的应用程序
EN

Server Fault用户
提问于 2019-06-06 15:50:13
回答 1查看 118关注 0票数 2

问题

我们目前正在Windows 2012 R2上提供两个IIS项目,IIS8.5如下所示:

  • 托管在foo上的server.com/foo
  • 托管在bar上的server.com/bar

然而,这些项目的代码几乎相同,因此我们正在整合它们。理想情况下,我们应该

  • 托管在common上的server.com/common (只能在内部使用)
  • IIS重写规则^foo(.*)$common{R:1},因此它似乎托管在server.com/foo上。
  • IIS重写规则^bar(.*)$common{R:1},因此它似乎托管在server.com/bar上。

我们已经设置了新的公共项目,它在server.com/common上运行良好,但是,当我们启用重写规则时,任何试图导航到server.com/foo/bar的操作都会产生403个错误,特别是:

Troubleshooting

我非常肯定这不是我的模式/替换字符串的问题,因为如果我将规则类型更改为Redirect,它会生成所需的目标URL。

如果我创建了IIS重写规则^common/test(.*)$common{R:1},那么common代码将正确运行,但是^common-test(.*)$common{R:1}会失败,因此,除了/common之外,还有一些东西会阻止为common提供服务。

这里令人困惑的是,还有另一个应用程序在将/baz/qux重写到共享应用程序/other时做了类似的事情。如果我指出^foo(.*)$other{R:1},它可以正常工作(当然,它执行错误的应用程序代码)。我无法确定这两个应用程序之间的任何其他相关差异会导致这种情况。实际上,我从other复制了几乎所有的D48文件,并且仍然看到了相同的行为。

我也用尽了其他可能的解决方案:

还可能是什么原因造成的?我希望你能给我指点。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-06-06 18:12:44

在深入研究并再次与other背后的开发人员进行磋商之后,我认为我们已经解决了这个问题。

基本上,托管server.com和<#>所有将参与重写的应用程序(common,以及foobar,直到我们准备删除它们)的站点都需要在同一个IIS应用程序池中运行。

我已经调整了我们的部署过程,以说明这一点。我们使用八达通,所以它可以归结为在每个项目中只改变一个变量。对于未来的读者来说,您的过程可能有所不同,但以防万一,希望这能帮助到其他人:

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/970404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档