Asp.net 已发布的网站不';t在web.config中重新格式化重写元素

Asp.net 已发布的网站不';t在web.config中重新格式化重写元素,asp.net,asp.net-mvc-4,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="AbortApiHTTPReques

总之,我在部署网站时遇到了一个问题。我发现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>

谈论它。我不确定这是否是问题的原因。似乎这只是
VisualStudio
的xml语法验证。在IIS 7中部署网站真的很重要吗

无论如何,我也遵循了帖子的说明,但是我没能让它工作。即使我以管理员的身份运行
cmd
。错误如下所示

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

我想知道我是否有足够的权限运行
cscript
命令?谢谢

更多


如果我在Visual Studio中使用
Asp.net开发服务器运行该项目
,它就可以正常工作。但是如果我将项目发布到我计算机中的IIS。它不起作用

重写指令由使用


如果未安装模块,则会出现与上述类似的错误。如果需要URL重写,您可以安装该模块,也可以注释掉整个
部分。

如果您在本地访问该网站(即与IIS服务在同一台计算机上),您是否获得扩展错误信息?是的,我在我的计算机的IIS中发布了该模块,并在我的计算机中访问了该模块,完整的错误信息可以显示在页面中。+1我如何确定模块是否已安装?谢谢。在IIS管理器中,找到并单击左侧窗格中的网站;在中间窗格中,您应该看到“HTTP特征”部分下的“URL重写”。它不随IIS提供或默认安装。其他方法是打开“服务器组件”下的“模块”,查看该列表中是否存在重写模块:%SYSTEMROOT%\system32\inetsrv\rewrite.dll
。是的,它尚未安装。但我突然想到一个问题,Url重写不是在HttpModule或HttpHandler中实现的吗?谢谢。对不起,我不知道。我只使用这个模块(IIS7上的IIRF和IIS6上的IIRF)重写URL。