C# 为什么页面路由可以在本地主机上工作,但在生产Azure服务器上某些页面会中断?

C# 为什么页面路由可以在本地主机上工作,但在生产Azure服务器上某些页面会中断?,c#,azure,.net-core,razor-pages,C#,Azure,.net Core,Razor Pages,我正在发布一个新的web应用程序,它是用VS中的.Net core和Razor页面构建的。在本地测试时,所有页面/链接都能正常工作。当发布到Azure托管服务器时,到某些页面的路由中断且不起作用(返回404) e、 g /管理/程序-适用于本地主机和实时服务器 /Management/Programs/1-在本地主机上工作,但在实时主机上工作404 /文件系统上的管理/程序转到/Areas/Management/Pages/Programs/Index.cshtml /管理/程序/1转到/Are

我正在发布一个新的web应用程序,它是用VS中的.Net core和Razor页面构建的。在本地测试时,所有页面/链接都能正常工作。当发布到Azure托管服务器时,到某些页面的路由中断且不起作用(返回404)

e、 g

/管理/程序-适用于本地主机和实时服务器 /Management/Programs/1-在本地主机上工作,但在实时主机上工作404

/文件系统上的管理/程序转到/Areas/Management/Pages/Programs/Index.cshtml /管理/程序/1转到/Areas/Management/Pages/Programs/View.cshtml

View.cshtml第一行是:

@page "/Management/Programs/{id}"
这应该允许项目正确解析和路由URL,但在生产服务器上失败

另外,下面的代码生成两种不同的URL模式

<li class="no-sub-menu" is-active-route asp-path-pattern-root="/Management/Programs" asp-path-pattern-index="/Management/Programs/Index">
  <a asp-area="Management" asp-page="/Programs/Index">
    <span>Programs</span>
  </a>
</li>
<li class="no-sub-menu">
  <a class="teal" asp-area="Management" asp-page="/Programs/New">
    <span>New Program</span>
  </a>
</li>
  • 程序
  • 新节目
  • 程序链接URL为“/Management/Programs”,但新程序链接(路由中断的页面之一)生成以下链接:

    “/?区域=管理&页面=%2f程序%2FNew”

    我们已经查看了不同的代码示例和服务器配置,对于它为什么不仅在服务器环境中工作感到困惑。如有任何建议,将不胜感激


    我不确定这是否有助于追踪问题,但这似乎只发生在不指向文件夹索引的区域内的页面上。cshtml

    请在public repo中共享代码库,将尝试重现问题。您的Razor页面应位于每个区域内的页面文件夹中,例如/Areas/Management/Pages/Programs/Index.cshtml。虽然就我个人而言,我会在剃须刀页面中删除一些区域。只是一大堆额外的文件夹,几乎没有实际的收益。不幸的是,我不能在公共回购中共享代码库@MikeBrind你说得对,我打错了路径,它们在页面下面already@Steve如果您的问题已经解决,请将答案添加到答案部分。那么这个问题就可以解决了。非常感谢。