Asp.net Web部署删除IIS网站自定义配置
我正在使用Web Deploy(来自VS2013)将ASP.NET MVC站点发布到IIS 7.5 我通过IIS管理器添加了一些URL重写规则和自定义HTTP响应头 问题是每次我部署新版本的站点时,这个额外的配置都会被删除 这是预期的行为还是有什么问题?如何在每次部署中保留这些自定义设置 更新 因此,我明白我需要将这些更改放在Asp.net Web部署删除IIS网站自定义配置,asp.net,asp.net-mvc,iis,iis-7.5,webdeploy,Asp.net,Asp.net Mvc,Iis,Iis 7.5,Webdeploy,我正在使用Web Deploy(来自VS2013)将ASP.NET MVC站点发布到IIS 7.5 我通过IIS管理器添加了一些URL重写规则和自定义HTTP响应头 问题是每次我部署新版本的站点时,这个额外的配置都会被删除 这是预期的行为还是有什么问题?如何在每次部署中保留这些自定义设置 更新 因此,我明白我需要将这些更改放在web.config中。我试图将它们放在Web.Release.config中,但它没有被添加到部署的Web.config中。我想我缺少了一些XDT:Transform规则
web.config
中。我试图将它们放在Web.Release.config
中,但它没有被添加到部署的Web.config
中。我想我缺少了一些XDT:Transform
规则
这是我在Web.Release.config
中得到的信息(是的,发布配置文件正在使用此版本配置)
将web.config的生成操作设置为“无”。这将防止每次发布时都部署该文件 编辑 要将整个节从web.release.config插入web.config,需要像这样添加xdt:Transform=“Insert”:
<system.webServer xdt:Transform="Insert">
<rewrite>
<rules>
<rule name="Redirect to www" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="mydomain.com" />
</conditions>
<action type="Redirect" url="http://www.mydomain.com/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
好的,我知道我需要使用
XDT:Transform
在web.config中添加此自定义配置
我把它添加到Web.Release.config
中,它成功了:
<system.webServer>
<rewrite xdt:Transform="Insert">
<rules>
<rule name="Redirect to www" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="mydomain.com" />
</conditions>
<action type="Redirect" url="http://www.mydomain.com/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
这些更改是否放在部署的web.config中?如果您检查您的本地web.config和部署的web.config之间的差异(在进行更改之后),文件之间是否存在差异?@NoLifeKing No,正如我所说,这些更改是通过IIS管理器而不是web.config进行的。是否需要通过web.config进行更改?在IIS管理器中所做的更改将使用新值更改已部署的web.config。当然,更改的内容也有例外,并非所有内容都放在web.config中,但我确实希望部署web.config文件(我可能在那里添加了一些内容)。因此,似乎唯一的方法是直接在web.config上添加自定义配置,对吗?发布将始终覆盖目标web.config。无法合并这两个文件。您必须在本地web.config(primary或.Release.config)上的某个位置进行更改,发布才能使用正确的服务器设置推送所有更改。祝您现在一切顺利。我将把这些配置放在Web.Release.config中。谢谢。对不起,乔希,你能再检查一下我的答案吗?我已经更新了。我想我缺少了一些XDT转换规则…响应不够快。很高兴你明白了。
<system.webServer>
<rewrite xdt:Transform="Insert">
<rules>
<rule name="Redirect to www" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="mydomain.com" />
</conditions>
<action type="Redirect" url="http://www.mydomain.com/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>