iis服务器源文件替换,asp.net-在web.config转换中替换IIS重写规则

asp.net-在web.config转换中替换IIS重写规则

我有一些IIS重写规则,我想根据环境而定。 开发重写规则位于web.config文件中,然后在web.test.config文件的末尾具有:

...Some app settings tranforms here

... rules here

部署进行测试时,我的应用程序设置已发生转变,但IIS重写规则并未改变。 我希望整个xdt:Transform="Replace" xdt:Locator="Match(name)">部分可以简单地替换为转换文件中的部分(根据[http://msdn.microsoft.com/zh-cn/library/dd465326.aspx),]但什么都没有改变。

我也尝试将xdt:Transform="Replace" xdt:Locator="Match(name)">放在各个规则上:

但这又没有区别。

甚至可以替换web.config中的重写规则,如果可以,我会丢失什么?

5个解决方案

48 votes

由于我的主web.config中没有任何重写规则,因此Replace转换不起作用。 我成功使用了Insert转换,如下所示:

StuartQ answered 2020-06-22T07:50:15Z

7 votes

创建发行版配置时,重写部分起初对我来说很奇怪,错误和部分根本不显示。 这就是我解决的方法。

Microsoft(R)Build Engine版本12.0.31101.0

Microsoft .NET Framework版本4.0.30319.0

编辑搞砸之后,我意识到在没有重写插件的服务器上拥有重写标签会使Web服务器返回错误。 我在服务器和本地开发人员机器上没有不同的配置,因此解决方法是:

未转换的web.config仅需要一个标签,并且在web.config.release中需要一个基本的规范主机名规则

该动作根本不需要名称,但是重写标记需要xdt:Transform =“ Insert”

显然,如果您也希望在本地计算机上使用它,则需要更新。

Crypth answered 2020-06-22T07:51:02Z

6 votes

这里有很多例子的答案,这是一件好事,但我认为缺少一些细节。 我已经在我的网站上写过有关此内容的文章,关键是要在要为各个环境添加的根标记层次结构中添加xdt:Transform="Insert"。

默认情况下,您具有Web.config文件,但也具有Web.Debug.config和Web.Release.config,如下图所示:

jn0H2.png

假设您要在应用程序的发行版中添加从http到https的重定向。 然后编辑Web.Release.config并添加以下行:

.....

......

因此,下次您发布项目时,带有重写的标记及其子内容将添加到web.config文件中。

要在发布之前看到它,请右键单击Web.Release.config,然后单击“预览转换”。

ONMEq.png

您将看到初始版本和发行版本之间的区别。

aIgSH.png

参考:

HTTP到HTTPS重定向-IIS 8.5无法正常工作

Microsoft Web.Config文件转换

免责声明:本指南的链接指向我的个人网站。

maytham-ɯɐɥʇʎɐɯ answered 2020-06-22T07:52:02Z

1 votes

可以转换system.webServer的重写部分。 最初我遇到了同样的问题,并意识到我无意间将重写节点错误地放置在system.web下。 尽管根据您提供的代码片段来看,这看起来不像您的问题,但我仍然怀疑您的问题与转换文件中的节点放置有关。

这是我的Web.Debug.config的外观(此版本在调试版本中编写了正确的Web.config):

J.R. Armstrong answered 2020-06-22T07:52:28Z

0 votes

我使用的一个技巧是给动作起一个名字

然后在我的转换中只需添加xdt:Transform="SetAttributes" xdt:Locator="Match(name)",如下所示

上面的示例是将www添加到所有请求

-------更新-----

只是将名称添加到操作的更新将无法按需工作,因此我按以下方式更新了代码

Mshtawythug answered 2020-06-22T07:53:05Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值