IIS中的URL中缺少.aspx 8

问题描述:

我已经使用Server 2012 R2和IIS设置了一台新服务器,并将应用程序发布到新网站。当我在开发环境中运行应用程序时,它在URL中显示.aspx文件扩展名,但是当我浏览IIS服务器上的发布实例时,它将删除.aspx扩展名。IIS中的URL中缺少.aspx 8

所以不知何故,它已经启用了某种URL重写 - 我怎么改变这个,因为我需要它与开发版本保持一致。我安装了URL Rewrite扩展,以查看是否配置了任何规则,但没有定义规则。

谢谢!

+0

也许你的发布配置文件中有一个URL Rewrite,例如Web.Release.config,而不是在你的调试配置中? – krlzlx

+0

@krlzlx不要感谢您的想法 – ebooyens

对我们来说,这是一个问题,我们开发了一个菜单系统,通过根据当前页面URL中的页面名称突出显示适当的菜单项来显示哪个页面处于活动状态。我们最终修改了代码,只是寻找.contains(“pagename”)而不使用.aspx,而不是评估包括扩展名在内的整个页面名称。这工作正常,我们还没有能够找出究竟是什么导致URL被重写。以上所有答案都没有帮助我确定这个问题。

+0

所以你还有扩展名.aspx丢失?您验证的解决方案是绕过的,但无法解决您在扩展程序未显示时遇到的问题。 – krlzlx

你可以重写规则(examplePage.aspx)这样的配置你的web.config文件:

<?xml version="1.0"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="examplePage.aspx Redirect" stopProcessing="true"> 
        <match url="^(.*\/)*examplePage\.aspx$" /> 
        <conditions logicalGrouping="MatchAll"> 
         <add input="{REQUEST_METHOD}" negate="true" pattern="^POST$" /> 
        </conditions> 
        <action type="Redirect" url="{R:1}" redirectType="Permanent"/> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 

希望,应该工作!

+0

Hi @ Asif.Ali是否应该将.aspx添加回URL?我已将它添加到applciation的web.config中,但没有看到任何区别。谢谢 – ebooyens

我在开发中创建某种Web项目时看到了这种行为。所以它可能是安装的干扰。我想你已经看过web.config的任何东西,但如果它不在那里尝试machine.config。 另外,看一下IIS本身,当你点击根级别(网站上面的那个)时安装的内容。

+0

这发生在我们的生产服务器上,在开发服务器上它正常工作 - .aspx后缀在那里,但不在生产服务器上。我无法在生产服务器上找到任何自定义安装或配置,这是一个干净的安装。 – ebooyens