当我试图运行我的应用程序时,我得到这个错误消息。我不知道怎么解决:

HTTP错误404.3 -未找到页面 您所要求的服务无法提供 因为延伸 配置。如果页面是 脚本,添加一个处理程序。如果文件 应该下载,添加一个MIME映射。

下面是错误页面的截图:

我能做什么来修复这个错误?


当前回答

PHP 7.3应用程序IIS在Windows Server 2012 R2

这对我来说是一个两步的过程。

1)启用WCF服务-重启服务器

2)添加FASTCGI模块映射

1)

进入“服务器管理器”>添加角色和特性 从服务器池中选择您的服务器 进入功能> WCF服务 我选择了所有类别然后安装

2)

去IIS >选中的站点 在中心窗格中选择处理程序映射 右边窗格选择添加模块映射

在编辑窗口内:

请求路径:*.php

模块:FastCgimodule

可执行文件:我浏览到PHP文件夹中的PHP -cgi.exe

名称:PHP7.3

现在我想起来了。也许有一种方法可以在web配置中添加这个处理程序映射,这样如果你把你的网站迁移到另一个服务器上,你就不必一遍又一遍地添加这个映射。

编辑:在这里。将此添加到web-config部分。

<add name="PHP-FastCGI" verb="*" 
  path="*.php" 
  modules="FastCgiModule"
  scriptProcessor="c:\php\php-cgi.exe" 
  resourceType="Either" />

其他回答

正如@Mahmoodvcs提到的,我需要为我需要直接托管/下载的文件扩展名设置/添加MIME类型,在这种情况下是Heroku的转储文件(postgres的数据库备份),所以为了设置一个公共IIS服务器,你可以下载这些文件,而不需要AWS S3桶或HTTP共享,如dropbox,这是一个很棒的选择!

<staticContent>
  <mimeMap fileExtension=".dump" mimeType="application/octet-stream" />
</staticContent>

如果你试图查看一个无扩展名的文件,对我来说是添加一个MIME类型:文件扩展名:。MIME类型:文本/纯

这可能会有一些MVC的影响,特别是如果你的静态文件处理程序在无扩展…处理程序(在IIS /处理程序映射下),但当你只是暂时需要它时,可能是一种解决方法,比如激活SSL Certs。

运行Windows Server 2008 R2 64bit和。net framework 4.5,在这个位置运行这个命令,并且成功:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

输出:

Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation.  All rights reserved.
Start installing ASP.NET (4.0.30319.0).
.....
Finished installing ASP.NET (4.0.30319.0).

针对Windows Server 2016

打开服务器管理器表单 Manage ->添加角色和特性 Next直到Features页面 检查WCF服务功能及其所有子功能 下一步和安装

在Windows 8/10中,你必须使用

打开控制面板→ 节目及特色→ 打开或关闭Windows功能→ Internet Information Services (IIS)→ 万维网服务→ 应用开发特性→ 检查相应的项目,例如启用ASP.NET。(即安装你想要配置你的网站的适当版本)

参考:核对这道题的解答,以供参考