我正在本地PC上测试SSL
加密,这要求我将ASP.MVC Project URL
从http://localhost:xxxx
更改为http://payroll.net:81
之类的内容。
当我运行此应用程序时,ASP.MVC可能没有在此URL上加载项目。浏览器出现以下错误:
无法找到payroll.net上的服务器,因为DNS查找失败。 DNS是将网站名称转换为其Internet地址的网络服务。此错误通常是由于没有连接到Internet或配置错误的网络引起的。它也可能是由于无响应的DNS服务器或阻止Google Chrome访问网络的防火墙引起的。
我必须提及我已将hosts
位置中的../WINDOWS/System32/drivers/etc/
文件更新为:
127.0.0.1 payroll.net:81。
我还必须提一下,如果我在Project URL
使用的默认IISExpress
下运行相同的项目,即http://localhost:xxxx
,项目运行良好。有关如何在IISExpress上使用http://payroll.net:81
URL运行此项目的任何想法吗?
答案 0 :(得分:2)
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
我在Rehan Khan的回答中的评论及其验证
答案 1 :(得分:1)
如果您想使用https
运行您的网络应用程序,只需添加属性' [RequireHttps]'你的控制器。
如果您有两个名为HomeController.cs
和ActionController.cs
的控制器,则将此属性添加到控制器,例如
[RequireHttps]
public class HomeController : BaseController
{
// Your controller
}
因此,当您调用HomeController
内的操作时,会强制浏览器使用https
。
答案 2 :(得分:0)
在@AbdulRaufMujahid评论的帮助下,我设法解决了这个问题,并将回答我自己的问题。
如果hosts
地址指定为C:\WINDOWS\System32\driver\etc\
,IP
目录中的 hostname
文件无法将port
地址解析为IP
。就像我的情况一样:
127.0.0.1 payroll.net: 81 ------>是错的----->指定端口号81会阻止127.0.0.1
( IP )解析为payroll.net
(主机名)。
我将81
删除为:
127.0.0.1 payroll.net ------> 是正确的
项目开始像魅力一样运行。 :-)谢谢@AbdulRaufMujahid和所有帮助过的人。