web.config 导致 iis 出现问题

Posted

技术标签:

【中文标题】web.config 导致 iis 出现问题【英文标题】:web.config causing problems with iis 【发布时间】:2012-11-01 01:54:33 【问题描述】:

到目前为止,我只在 Visual Studio 中使用过这个 web.config。但是,我现在正尝试将我的网站发布到 IIS,并且存在与我的 web.config 相关的错误。似乎它在模块的配置数据上崩溃了。

<?xml version="1.0"?>

<configuration>
    <system.web>
      <compilation targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>
  <phpNet>
    <classLibrary>
      <add assembly="php_mcrypt.mng, Version=3.0.0.0, Culture=neutral, PublicKeyToken=4ef6ed87c53048a3" section="mcrypt" />
      <add assembly="php_curl.mng, Version=3.0.0.0, Culture=neutral, PublicKeyToken=4ef6ed87c53048a3" section="curl" />
    </classLibrary>
    <scriptLibrary/>
  </phpNet>

</configuration>

错误:

此屏幕截图是在尝试双击 IIS 的“功能视图”中的任何“功能”时出现的。但是,如果我只是通过浏览器访问网站,错误是一样的:

无法读取配置部分“phpNet”,因为它是 缺少部分声明

phpNet 用于Phalanger,应该安装扩展,但我不知道如何检查。就像我说的那样,这个 web.config 和 phalanger 在 Visual Studio 中运行良好,所以我不知道出了什么问题。特别是因为安装程序确实在 iis 中安装了示例。

【问题讨论】:

【参考方案1】:

我发现这个帖子http://crdevelopment.net/2012/06/12/fixing-iis-error-the-configuration-section-system-web-extensions-cannot-be-read-because-it-is-missing-a-section-declaration/

这导致我检查了应用程序池。

此时我注意到那里的倍数。我选择了 phalangerAppPool 并消除了我的错误,但带来了一个新的错误。

处理程序“PageHandlerFactory-Integrated”有一个坏模块 其模块列表中的“ManagedPipelineHandler”

不过这个错误更容易解决 (fix)

【讨论】:

【参考方案2】:

您缺少配置节定义

<configSections>
<section name="phpNet" type="PHP.Core.ConfigurationSectionHandler, PhpNetCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=0a8e8c4c76728c71" />

没有这个,.NET 不知道 'phpNet' 配置部分。

这也意味着,您没有使用 setup.exe 安装 Phalanger。这里有一些关于在没有正确安装的情况下使用 Phalanger 的信息(重要的是关于配置的部分)http://www.php-compiler.net/blog/2011/installation-free-phalanger-web

【讨论】:

我发布的答案怎么样?因为一旦我开始使用“PhalangerAppPool”,事情就会奏效。 我最终也将这些语句移到了 .net/frameworks/v4/config 目录中的 master.config 中

以上是关于web.config 导致 iis 出现问题的主要内容,如果未能解决你的问题,请参考以下文章

重定向 web.config IIS 8

使用 web.config 允许服务器端包含在 HTML 文件 (IIS) 中

win7下面用IIS部署系统,出现web.config无法写入配置文件

Web.config设置system.webServer

IIS Url Rewrite Module 导致“无法在网络服务器上开始调试”

如何返回任何未指向IIS web.config中任何文件的Web请求的特定页面?