在ASP.MVC应用程序

时间:2015-12-28 07:09:19

标签: c# asp.net-mvc iis-express

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

3 个答案:

答案 0 :(得分:2)

如果使用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

来源:

我在Rehan Khan的回答中的评论及其验证

答案 1 :(得分:1)

如果您想使用https运行您的网络应用程序,只需添加属性' [RequireHttps]'你的控制器。

如果您有两个名为HomeController.csActionController.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和所有帮助过的人。