ASP.MVC应用程序中到项目URL的默认路由

本文关键字:URL 默认 路由 项目 MVC 应用程序 ASP | 更新日期: 2023-09-27 18:28:17

我正在本地PC上测试SSL加密,这要求我将ASP.MVC Project URLhttp://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运行这个项目吗?

ASP.MVC应用程序中到项目URL的默认路由

如果端口是用IP地址指定的,

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.csActionController.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.1IP)解析为payroll.net主机名TR

一旦我删除81作为:

127.0.0.1 payroll.net----->正确

项目开始像符咒一样运行。:-)感谢@AbdulRaufMujahid和所有提供帮助的人。