【问题标题】:httpContext.Current.Request.RawUrl used to return path with extensionhttpContext.Current.Request.RawUrl 用于返回带扩展名的路径
【发布时间】:2021-03-19 22:52:13
【问题描述】:

我有一些 asp.net c# 代码可以获取路径名并将其用于各种授权和身份验证任务。在我们的网站项目中,这是返回路径(带扩展名,例如:index.aspx?querystringparam1=3&qp2=4):

string strPath = HttpContext.Current.Request.RawUrl;

这用于返回“index.aspx?querystringparam1=3&qp2=4”。

但是,在我们转换为 Web 应用程序项目的工作中,同一行代码现在返回的 url 没有扩展名:“index?querystringparam1=3&qp2=4”。

如何让旧行为恢复?这似乎是某处的 IIS 设置,因为返回到同一 IIS 实例上的网站项目不会恢复到旧功能。

【问题讨论】:

  • 我只注意到大约一半的时间,扩展就在那里。另一半不是。很好奇!
  • 嗯。经过更多的调查,事实证明 IIS 似乎正在返回从 index.aspx 到 index 的 301 永久重定向(无扩展名)。到目前为止,还没有在我们的代码中找到任何这样做的地方。哦,一旦我“退出”应用程序,它就开始这样做了。

标签: asp.net web-site-project web-application-project


【解决方案1】:

好的。我发现了问题。看起来 Visual Studio 以其无限的智慧安装了两个组成 Microsoft 友好 URL 的包 (DynamicModule_Microsoft.AspNet.FriendlyUrls.FriendlyUrlsModule),它通过在到达站点代码之前向浏览器发送永久重定向来从路径文件中删除扩展。

并且,删除那些 NuGet 包(有两个),解决了问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 2019-04-01
    • 2017-06-17
    • 2014-08-28
    相关资源
    最近更新 更多