首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIS8无法识别web.config

IIS8无法识别web.config
EN

Stack Overflow用户
提问于 2017-05-19 14:21:36
回答 3查看 1.1K关注 0票数 10

我在我的IIS8 (Win 2012)服务器上运行了多个PHP (Laravel)应用程序。这是我所有应用程序的web.config文件:

代码语言:javascript
复制
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Imported Rule 1" stopProcessing="true">
          <match url="^(.*)/$" ignoreCase="false" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
          </conditions>
          <action type="Redirect" redirectType="Permanent" url="{R:1}" />
        </rule>
        <rule name="Imported Rule 2" stopProcessing="true">
          <match url="^" ignoreCase="false" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
          </conditions>
          <action type="Rewrite" url="index.php" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

但是在一个应用程序中,IIS会不时地产生一个问题:我的应用程序无法工作,因为URL是错误的。如果我重新启动the服务器或更改web.config文件(添加空格或其他内容),它将再次工作。

我没有idea...my其他应用程序没有问题,它是相同的web.config代码。

所有用户(IIS_IUSR、管理员等)都具有完全的写和读访问权限。

我的应用程序是在文件夹中构建的,请看这里:

我称它为10.0.0.7/doku10.0.0.7/lagerverwaltung

EN

回答 3

Stack Overflow用户

发布于 2017-05-23 03:18:07

使用IIS时,我会考虑转换每个特定的站点文件夹(doku、lagerverwaltung等)集成到他们自己的应用程序中。这样就不会在加载时混淆使用哪个web.config文件,而且应用程序可以在自己的应用程序池和线程中运行。

为此,在IIS中,右键单击要转换的特定文件夹,然后在打开的上下文菜单中单击“转换为应用程序”。在随后的屏幕中,您可以选择现有的或新的应用程序池,还可以设置您可能需要的任何所需的传递身份验证。

强制子站点在它们自己的应用程序池中运行,并特别使用它们自己的web.config文件,可以消除潜在的回退到基本web.config的问题。

票数 3
EN

Stack Overflow用户

发布于 2017-05-28 12:28:22

查找问题根源的系统方法可能是在IIS中启用失败的请求跟踪,如下所述:

https://docs.microsoft.com/en-us/iis/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis

启用失败请求跟踪后,查看HTTP管道并检查重写规则是如何处理的。

此外,您还可以使用进程监视器查看您的应用程序池正在访问的确切文件。我会根据(1)站点所在的文件夹,然后(2)应用程序池标识(3)应用程序池进程ID对其进行筛选。

当您的服务器上没有负载时,您需要使用进程监视器,这样您就不会收到大量的进程事件。

使用上述技术,您应该能够确定恶作剧应用程序上发生了什么。

祝好运!

票数 0
EN

Stack Overflow用户

发布于 2017-05-28 18:02:59

默认情况下,会验证web.config架构中的所有功能,而不仅仅是可用的或已安装的资源。未安装的功能不会被选中,也不会被使用。请在您的服务器上正确安装此功能。

See more about url-rewrite

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44062782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档