【问题标题】:.NET routing not including full path to app directory?.NET 路由不包括应用程序目录的完整路径?
【发布时间】:2020-12-17 15:15:52
【问题描述】:

我对 ASP.NET 应用程序很陌生,而且这个应用程序由 IIS 提供服务(我相信版本 10)。在https://{host}/Dashboard 导航到我的站点时,会加载此组件;但是,它无法加载任何子组件并抛出 404,例如,它尝试从 {host}/Defects/YearOverYear 获取 /Defects/YearOverYear 的视图,而不是 {host}/Dashboard/Defects/YearOverYear,这是该特定视图实际所在的位置。

我看到有人谈论这与从根目录而不是应用程序目录进行路由有关,而且我还看到有人提到这可能是 IIS 的配置问题,或者是 .csproj 中的配置问题文件(Visual Studio 不会在任何地方的最终构建中包含项目配置中的属性吗?),但是在黑暗中拍摄了几张照片后,我不确定从这里去哪里。

这个项目没有路由处理程序,但它确实有一个在生产服务器上工作的路由配置,所以我很确定这是在构建或部署期间其他地方的配置问题。

我可以包含任何额外的信息或配置文件,但我现在不确定放在这里。

【问题讨论】:

  • 你可以从stackoverflow.com/questions/8042832/…得到一些想法
  • @LexLi 我很欣赏这个提示 - 该帖子肯定存在类似的质量问题,但不幸的是,此应用程序中没有自定义路由处理(仅路由映射),并且它已被 IIS 视为应用。但是,当我添加一个嵌套的虚拟目录时,损坏的路由再次开始工作,这很奇怪。

标签: asp.net iis


【解决方案1】:

项目路由器似乎有问题。项目发布的根目录是什么?您的项目类型基于什么框架? 大多数情况下,如果您的项目基于 Angular/Vuejs,资产中的根目录有一些设置,因此相对地址有效。如
Vue.js routes serving from subdirectory
此外,尝试将您的子目录转换为应用程序。这将使子文件夹成为实际应用程序。

如果有什么我可以帮忙的,请随时告诉我。

【讨论】:

  • 路由器也是我的第一个想法——这个应用程序没有任何自定义路由器处理,并且存在的路由映射适用于生产服务器;更重要的是,除了这个奇怪的行为之外,大多数操作请求都有效(对于脚本、资产,甚至是父组件本身的 html)。该应用程序已经在 IIS 中进行了这样的配置,它只是一个 asp.net webapp - 没什么特别的。
猜你喜欢
  • 2011-09-30
  • 2013-11-12
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-07
  • 2019-02-24
相关资源
最近更新 更多