首页 > 解决方案 > 具有 Windows 身份验证的 IIS 网站无法在本地 Windows 10 机器上运行

问题描述

我有一个简单的 ASP.NET Core 应用程序,我想使用 IIS 和 Windows 身份验证来运行它。

我之前测试并运行过它(在添加 Windows 身份验证和 IIS 之前),它运行良好:它只是打开一个浏览器页面并显示一个带有名称和生日日期的 json。

现在,我完全遵循了关于如何在 ASP.NET Core 中配置 Windows 身份验证的官方 Microsoft 指南,然后,我遵循了关于如何“使用 IIS 在 Windows 上托管 ASP.NET Core”的Microsoft 指南。在那里,我被这部分困住了

浏览网站

因为当我尝试访问http://www.iiswebsite.com/(这是我通过上述指南添加的网站名称)时,Chrome 会显示“无法访问此站点”。

我检查了我的配置三遍,并确保一切设置正确/如指南中所述(请注意:我使用 Windows 桌面操作系统)

这是我不明白的事情:正如有关如何“在 ASP.NET Core 中配置 Windows 身份验证”的文章中所建议的那样,我web.config在项目的根目录中添加了所需的配置。这里是:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <security>
        <authentication>
          <anonymousAuthentication enabled="false" />
          <windowsAuthentication enabled="true" />
        </authentication>
      </security>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="C:\Users\XXX\Desktop\FirstProject\FirstProject\bin\Debug\netcoreapp3.1\FirstProject.exe" arguments="" stdoutLogEnabled="false" hostingModel="InProcess">
        <environmentVariables>
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

但是关于如何“使用 IIS 在 Windows 上托管 ASP.NET Core”的 Microsoft 指南也建议将此行添加到web.config: <Project Sdk="Microsoft.NET.Sdk.Web">。当我这样做时,它会抱怨“未声明项目元素”。当我发布时,仍然找不到我的网站。这可能是问题吗?还是我在做一些完全错误的事情?

我希望这个问题不要太愚蠢。通常我会做前端的事情,而 ASP.NET Core、C#、IIS 等对我来说是一个全新的世界。

我也搜索了 StackOverflow,但没有成功。特别是这个问题看起来很有帮助,但遗憾的是它没有用。

附加信息:localhost 上的默认 IIS 网站成功运行。

标签: c#asp.netasp.net-coreiis

解决方案


该域www.iiswebsite.com不是有效域。它不存在,Chrome 也不知道如何访问该域。

解决方案(2 个选项)

  1. 使用指向托管站点的服务器 IP 的有效域。
  2. 在您计算机的主机文件中为域添加一个主机条目,该条目www.iiswebsite.com指向托管您的站点的 IIS 服务器的 IP

观看解释什么是 DNS 的视频:DNS 解释

有关如何添加主机条目的信息,请参阅:如何在 Windows 10 中修改主机文件


推荐阅读