如何在web.config中为ASP.NET MVC应用程序(.NET Framework 4.6)自动生成重写规则?

如何在web.config中为ASP.NET MVC应用程序(.NET Framework 4.6)自动生成重写规则?,asp.net,model-view-controller,url-rewriting,web-config,auto-generate,Asp.net,Model View Controller,Url Rewriting,Web Config,Auto Generate,我有一个ASP.NET MVC web应用程序(.NET Framework 4.6),我正在努力正确创建重写规则。我希望有人能帮忙 直到最近,我还从来没有遇到过任何路由问题。在Visual Studio 2017中本地运行该项目,我可以使用链接和url栏轻松浏览我的站点。与部署到Azure的版本相同: 但当我部署到Telus主机时,会遇到路由问题: 您可以看到,如果您访问该网站,您可以访问主页,但如果您单击任何链接,您会看到“未找到[CFN#0005]” 在咨询了Telus的技术支持后,我

我有一个ASP.NET MVC web应用程序(.NET Framework 4.6),我正在努力正确创建重写规则。我希望有人能帮忙

直到最近,我还从来没有遇到过任何路由问题。在Visual Studio 2017中本地运行该项目,我可以使用链接和url栏轻松浏览我的站点。与部署到Azure的版本相同:

但当我部署到Telus主机时,会遇到路由问题:

您可以看到,如果您访问该网站,您可以访问主页,但如果您单击任何链接,您会看到“未找到[CFN#0005]”

在咨询了Telus的技术支持后,我们得出结论,我在web.config中缺少重写规则(技术支持代理实际上说的是没有.htaccess文件,即Apache版本,但ASP.NET等效文件是web.config文件中的部分)。事实上,当我查看web.config时,我看到:

    <!--
      If you wish to use IIS rewrite rules, see the documentation here: 
      https://our.umbraco.com/documentation/Reference/Routing/IISRewriteRules
    -->
    <!--
     <rewrite>
      <rules></rules>
     </rewrite>
      -->

^那里什么都没有。在源web.config中也是如此

技术支持代理说,除非我有重写规则(或类似规则)告诉它在哪里找到请求的页面,否则它将假定页面位于与url路径匹配的文件夹路径。因此,如果您进入url栏“http://hollandandbarnes.azurewebsites.net/accommodations/它将在服务器上的“root/accountations/”处查找页面。我的应用程序的文件夹结构不是这样构建的,所以我需要弄清楚如何创建重写规则

但我认为必须有一种方法让Visual Studio 2017在构建版本时自动生成重写规则。显然,它知道如何在本地运行时将流量路由到适当的页面,并且在部署到Azure时不知何故它知道如何进行路由,因此我不必为我的网站拥有的每个路径编写重写规则

在部署到Telus主机时,我只是将该站点作为文件系统发布,然后将其FTPed到服务器。也许我需要配置发布配置文件以自动生成重写规则?也许文件系统构建无法做到这一点

所以问题是:发布文件系统构建时,如何在web.config文件中自动生成重写规则?或者这不是解决我问题的正确方法