HTTP错误404:找不到请求资源

问题描述 投票:0回答:8

我有三个运行在 IIS7 上的系统,静态 IP 地址为 192.168.66.5。我已将系统配置为在具有不同端口和子域名的同一 IP 地址上运行;

  1. 192.168.66.5:81 主机名 ams.tpf.go.tz

  2. 192.168.66.5:82 主机名 gmis.tpf.go.tz

  3. 192.168.66.5:83 主机名记录.tpf.go.tz

  4. 192.168.66.5:84 主机名 cmis.tpf.go.tz

我在IIS7上配置所有这些并在路由器中定义它们。
当客户端打开

ams.tpf.go.tz
而不指定端口号时,返回404错误:找不到请求的资源。

iis-7
8个回答
12
投票

我最近也遇到过这种情况 - 确保您的 IIS 网站 已启动 - 我的已被停止。这是我在 Visual Studio 中收到的错误:

无法在 Web 服务器上启动调试。 Web 服务器找不到所请求的资源。

IIS Manager 中右键单击您的网站(即默认网站),然后单击 管理网站 --> 开始

导航到 IIS 网站中的任何应用程序时显示此错误:

HTTP 错误 404。未找到请求的资源。


2
投票

实现这一目标的最简单方法是为您想要成为“默认”的站点设置端口 80,因为这是默认的 HTTP 端口。


2
投票

有时,如果以下 2 个服务未运行,IIS 管理器 -> 管理网站 -> 启动将无法工作 1.Windows激活技术服务 2.万维网发布服务

在Windows服务下手动启动这些服务,然后再次启动IIS。


1
投票

我经常遇到的另一个原因是正确设置了物理目录的权限。可以通过转到 IIS -> 单击网站,然后在操作面板中单击“编辑权限”来实现。确保您要分配权限的用户与身份验证 -> 匿名身份验证或 ASP.NET 模拟中定义的用户相同(如果启用了其中任何一种身份验证方法)。

要了解在这些身份验证方法上分配的用户,请转到身份验证图标,选择前面提到的任何身份验证方法,右键单击它并选择编辑。之后,您可以选择您想要的用户。

希望这有帮助。


0
投票

我对来自谷歌的其他人的问题。我正在托管一个 django 网站,因此在我的 webconfig 文件中它被设置为使用 python 虚拟环境处理请求。在

web.config
文件中,它是这部分:

<configuration>
    <system.webServer>
        <handlers>
            <add name="Python FastCGI"
                 path="*"
                 verb="*"
                 modules="FastCgiModule"
                 scriptProcessor="C:\inetpub\wwwroot\receipts\venv\Scripts\python.exe|C:\inetpub\wwwroot\receipts\venv\Lib\site-packages\wfastcgi.py"
                 resourceType="Unspecified"
                 requireAccess="Script" />
        </handlers>
        ...
</configuration>

当有对媒体文件夹的请求时,IIS 会说“太好了”,我知道该怎么做,通过 scriptProcessor(Python 处理器)发送它。对媒体文件夹的请求不应该这样做,它们只需要提供静态文件(无需额外处理)。我把这个

web.config
放在媒体目录中,它解决了我的问题!

<configuration>
    <system.webServer>
        <handlers>
            <!-- this configuration overrides the FastCGI handler to let IIS serve these static files -->
            <clear />
            <add name="StaticFile" 
                path="*"
                verb="*"
                modules="StaticFileModule"
                resourceType="File"
                requireAccess="Read" />
        </handlers>
    </system.webServer>
</configuration>

0
投票

在我的例子中,IIS 服务器并通过以下步骤解决。

  1. 检查安全组 - 我们是否已打开从 ALB SG 到 EC2 SG 所需的端口。
  2. 登录服务器并检查 IIS 服务器的默认站点是否打开了 443 端口(如果您的健康检查是在 443 上)。(无论您使用哪个端口进行健康检查)。

使用curl命令解决问题。

  1. 如果您想检查 HTTPS,请使用以下命令检查响应。使用 -k 或 --insecure 忽略 SSL 问题。

    curl https://[服务器IP] -k

  2. 对于 HTTP 测试,请使用以下命令。

    curl http://[服务器IP]


0
投票

当网站本身(而不是应用程序池)停止时,您会收到此错误。正如其他人指出的那样,您可以使用 IIS GUI 启动网站,但您也可以在提升的会话中使用

IISAdministration
模块编写脚本,如下所示:

Import-Module IISAdministration
Get-IISSite | 
  Where-Object { $_.State -eq 'Stopped' } | 
  ForEach-Object { $_.Start() }

另请参阅如何使用 PowerShell 停止和启动 IIS 中的各个网站?


0
投票

我几乎有同样的问题。我有别名,但别名不起作用。 nslookup 时别名就在那里。如果你有主机名,它可以工作,但不能有别名。为了解决这个问题。转到 IIS 和站点应用程序。单击“SSL 设置”,转到“操作”,然后单击“Blindings”。从那里,编辑现有的致盲并将“主机名”留空。这应该可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.