错误:您与该站点的连接不是私有的Asp.Net。 MVC5

时间:2019-01-25 09:53:31

标签: c# asp.net-mvc windows-server-2016 iis-10

我正在使用Windows Azure VM为asp.net mvc 5应用程序设置新服务器。我可以打开应用程序的每个页面,除了一个控制器外,没有任何问题。也就是说,每当我尝试打开属于特定控制器的页面时,都会提示我输入用户名和密码,如下所示。

enter image description here

我在不同的Windows Server 2016 VM中使用相同的应用程序,没有任何问题。

我也看不到应用程序/ IIS日志的任何错误。我在应用程序中没有任何https要求。

什么可能导致这种行为?

namespace App.Controllers
{
    public class ReportsController : BaseController
    {
        private readonly IReportRepository reportRepository;
        public ReportsController(): this(new ReportRepository()){
        }

        public ReportsController(IReportRepository reportRepository){
        this.reportRepository = reportRepository;
        }

        public ViewResult Action()
        {
           return View(reportRepository.All);
        }
    }
 }

namespace App.Controllers
{
    [Authorize]
    public class BaseController : Controller
    {
    }
 }

更新:我将ReportsController重命名为AppReportsController,问题消失了。 即当我尝试访问

时收到上述提示
  

http://domain/Reports/Action

但不是

  

http://domain/AppReports/Action

请问有人可以告诉我这是怎么回事吗?这是否意味着框架保留了“报告”?

4 个答案:

答案 0 :(得分:1)

如果您在Web应用程序中不使用transport layer security(即HTTPS),浏览器将告诉您与该站点的连接不是私有的,并且系统要求您输入数据-在这种情况下,您的凭据。这样做很危险,因为数据很容易被恶意者嗅探。

当今世界上没有理由没有一个安全的网站,我强烈建议您获得证书(它们是free and super easy!)

答案 1 :(得分:1)

请不要使用“报告”,而应使用“报告”。控制器名称ReportController不是ReportsController。没事的我已经遇到了问题,这就是我所拥有的解决方案。

答案 2 :(得分:0)

我知道这是一篇旧文章,但是我偶然发现了这则文章,因为我遇到了与OP相同的错误。

如果有人遇到与此相同的问题,我已经解决了这一问题。 但是解决方案可能会有所不同,具体取决于我们是否安装了相同的应用程序。

  1. 检查Web服务器/服务器是否安装了sql server。
  2. 检查是否安装了报告服务。
  3. 从应用程序控制面板中删除/卸载报告服务 如果您不知道如何删除报告服务How to remove Report Service

  4. ,请点击此链接
  5. 请再次检查是否仍然遇到相同的错误。干杯!

答案 3 :(得分:0)

这是身份验证问题。就我而言,它可以通过以下步骤解决: 1-转到IIS管理器,在左窗格中,展开服务器根目录,然后从“站点”节点中选择Web应用程序。 2-在主屏幕中,转到IIS部分,然后选择身份验证。 3-启用匿名身份验证。 4-然后,选择“编辑”,然后将“编辑匿名身份验证凭据”设置为“应用程序池标识”。

Anonymous Authentication Credentials