ASP.MVC应用程序中到项目URL的默认路由
本文关键字:URL 默认 路由 项目 MVC 应用程序 ASP | 更新日期: 2023-09-27 18:28:17
我正在本地PC上测试SSL
加密,这要求我将ASP.MVC Project URL
从http://localhost:xxxx
更改为类似http://payroll.net:81
的内容。当我运行这个应用程序时,ASP.MVC可能没有在这个URL上加载项目。浏览器出现以下错误:
找不到payroll.net上的服务器,因为DNS查找失败。DNS是将网站名称转换为其互联网地址的网络服务。此错误通常是由于没有连接到Internet或网络配置错误造成的。它也可能是由DNS服务器没有响应或防火墙阻止Google Chrome访问网络引起的。
我必须提到,我已经将../WINDOWS/System32/drivers/etc/
位置的hosts
文件更新为:
127.0.0.1工资单净值:81。
我还必须提到,如果我在IISExpress
使用的默认Project URL
(即http://localhost:xxxx
)下运行相同的项目,则项目运行良好。你知道如何在IISExpress上使用http://payroll.net:81
URL运行这个项目吗?
hosts文件无法将IP地址解析为主机名。所以
127.0.0.1 payroll.net:81
是错误的
和
127.0.0.1 payroll.net
是正确的
现在您可以安全地打开https://payroll.net:81.(现在自动映射到https://localhost:81)只需确保该站点托管在端口81上的IISExpress上,并且ssl已启用
附加说明:
我想在第一条评论中证明的一点是,SSL测试不需要您从http://localhost:xxxx到https://payroll.net:81(正如你的问题中提到的)。用于SSL测试。您可以将站点托管到任何不同的未使用端口,而无需更改主机文件。例如https://localhost:91
来源:
我在RehanKhan的回答
如果您想使用https
运行web应用程序,只需将属性"[RequireHttps]"添加到控制器即可。
如果您有两个名为HomeController.cs
和ActionController.cs
的控制器,则将此属性添加到这两个控制器中,如
[RequireHttps]
public class HomeController : BaseController
{
// Your controller
}
因此,当您调用HomeController
中的操作时,它会强制浏览器使用https
。
在@AbdulRaufMujahid评论的帮助下,我已经解决了这个问题,并将回答我自己的问题。
如果使用IP
地址指定了port
,则C:'WINDOWS'System32'driver'etc'
目录中的hosts
文件不会将IP
地址解析为hostname
。就我而言:
127.0.0.1 payroll.net:81----->错误----->指定端口号81会阻止将127.0.0.1
(IP)解析为payroll.net
(主机名TR
一旦我删除81
作为:
127.0.0.1 payroll.net----->正确
项目开始像符咒一样运行。:-)感谢@AbdulRaufMujahid和所有提供帮助的人。