【问题标题】:IIS website with windows authentication does not run on local Windows 10 machine具有 Windows 身份验证的 IIS 网站无法在本地 Windows 10 机器上运行
【发布时间】:2021-02-19 06:00:22
【问题描述】:

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

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

现在,我完全按照官方的Microsoft Guide on how to Configure Windows Authentication in ASP.NET Core 进行操作,之后就使用了Microsoft Guide on how to "host ASP.NET Core on Windows with IIS"。在那里,我被这个部分困住了

浏览网站

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

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

这是我不明白的地方:正如有关如何“Configure Windows Authentication in ASP.NET Core”的文章中所建议的那样,我在项目的根目录中添加了一个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>

Microsoft Guide on how to "host ASP.NET Core on Windows with IIS" 也建议将此行添加到web.config&lt;Project Sdk="Microsoft.NET.Sdk.Web"&gt;。当我这样做时,它会抱怨“未声明项目元素”。当我发布时,仍然找不到我的网站。这可能是问题吗?还是我在做一些完全错误的事情?

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

我也搜索了 StackOverflow,但没有成功。尤其是this question 看起来很有帮助,但遗憾的是它没有用。

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

【问题讨论】:

  • “但是关于如何“使用 IIS 在 Windows 上托管 ASP.NET Core”的 Microsoft 指南也建议将此行添加到 web.config:" ?再读一遍,因为那是不可能的。
  • 关于 Chrome 无法找到该站点的原因,您可能弄乱了 DNS 设置,因此请求甚至不会到达该 IIS 站点。惊讶于前端开发人员对 DNS 的了解不够,但是一旦您在那里搜索并了解了一些东西,原因就很明显了。
  • Lex Li,抱歉,您的回答一点用都没有。

标签: c# asp.net asp.net-core iis


【解决方案1】:

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

解决方案(2 个选项)

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

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

有关如何添加主机条目的信息,请参阅:How to modify your hosts file in Windows 10

【讨论】:

  • 这是为我做的!谢谢你:)
【解决方案2】:

使用windows powershell打开项目所在的文件夹,然后写这是Powershell。

dotnet run

【讨论】:

  • 感谢您的回答!当我尝试这个时,它说:The launch profile "(Default)" could not be applied. A usable launch profile could not be located.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多