如何解决如何在ASP.NET MVC应用程序.NET Framework 4.6的web.config中自动生成重写规则?
我有一个ASP.NET MVC Web应用程序(.NET Framework 4.6),并且正在努力创建正确的重写规则。我希望有人可以提供帮助。
直到最近,我从没有遇到过路由问题。在Visual Studio 2017中本地运行项目,我可以使用链接和URL栏轻松浏览我的站点。与部署到Azure的版本相同:
http://hollandandbarnes.azurewebsites.net/
但是当我部署到Telus Hosting时,会遇到路由问题:
http://www.hollandandbarnes.com/
如您所见,如果您访问该站点,则可以转到主页,但是如果单击任何链接,则会显示“未找到[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路径匹配的文件夹路径中。因此,如果您输入网址栏“ http://hollandandbarnes.azurewebsites.net/accommodations/”,它将在服务器上的“ root / accommodations /”中查找该页面。我的应用程序的文件夹结构不是那样构建的,因此我需要弄清楚如何创建重写规则。
但是我认为必须有一种方法可以使Visual Studio 2017在构建发行版时自动生成重写规则。它显然知道在本地运行时如何将流量路由到适当的页面,并且在部署到Azure时也知道如何执行该操作,因此我不必为网站具有的每个路径编写重写规则。
当部署到Telus Hosting时,我只是将该站点发布为文件系统,然后通过FTP将其传输到服务器。也许我需要配置发布配置文件以自动生成重写规则?也许这根本无法通过文件系统构建来完成?
所以问题是:发布文件系统构建时,如何在web.config文件中自动生成重写规则?还是这不是解决我的问题的正确方法?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。