发布的网站不会在web.config中重新识别重写元素

时间:2013-08-15 06:53:33

标签: asp.net asp.net-mvc-4

所有,我在部署网站时遇到了问题。我发现web.config中有一个名为rewrite的元素。

<rewrite>
        <rules>
            <!-- below rule will abort api request when the request to pattern "apis/v.*" is of "http" method-->
            <rule name="AbortApiHTTPRequest">
                <!-- Note:
                        the below pattern is assumed that all apis conain prefix "apis/v", e.g. apis/v3/aaauth
                        if there are some exceptions for the assumption, below pattern needs to be updated.
                -->
                <match url="^apis/v.*$" />
                <conditions>
                    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                </conditions>
                <action type="AbortRequest" />
            </rule>

            <!-- below rule will redirect all non-https requests except for above requests to https request.-->
            <rule name="RedirectToHTTPS" stopProcessing="true">
                <match url="^.*$" />
                <conditions>
                    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                </conditions>
                <action type="Redirect" url="https://{SERVER_NAME}/{R:0}" redirectType="SeeOther" />
            </rule>
        </rules>
    </rewrite>

当我删除元素时,网站运行良好。否则我得到一个错误说。

  

HTTP错误500.19 - 内部服务器错误请求的页面不能   访问,因为页面的相关配置数据是   无效。

在我做了一些研究之后,我发现这个question正在谈论它。我不确定这是否是问题的原因。似乎它只是Visual studio的xml语法验证。在IIS 7中部署网站真的很重要吗?

无论如何,我也按照帖子的说明进行操作,但是我没能使用它。但是我以管理员的身份运行cmd。错误说明如下。

  

无法打开文件Xml \ Schemas \ DotNetConfig.xsd。确保   脚本在提升的命令提示符下运行。

如果我有足够的优势来运行cscript命令,我就会徘徊?感谢。

更多

如果我使用Asp.net development server在Visual Studio中运行项目,它可以正常工作而不会出现任何错误。但是,如果我在我的计算机上将项目发布到IIS。它不起作用。

1 个答案:

答案 0 :(得分:3)

重写指令由URLRewrite module for IIS使用。

如果未安装该模块,您将收到与上述类似的错误。如果您需要URLRewriting,可以安装模块 - 或者 - 注释掉整个<rewrite>部分。