iis中的一个站总是挂掉应该如何解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iis中的一个站总是挂掉应该如何解决相关的知识,希望对你有一定的参考价值。

查看系统日志-应用程序日志写的是:错误
错误应用程序 w3wp.exe,版本 6.0.3790.1830,错误模块 php5isapi.dll,版本 5.1.2.2,错误地址 0x00002447。
查看系统日志-系统日志写的是:警告
为应用程序池 'xunlei158' 提供服务的进程意外终止。进程 ID 是 '2984'。进程退出代码是 '0x80'。
上面我放了两个网站,另一个只是简单网页,出问题的时候只是一个站挂掉iis并没有挂,挂掉的站用的是php程序我装的是php+mysql for iis,一旦这个站挂掉之后远程连接服务器就连不上了,需要重启服务器才行。
请各位大侠帮忙

参考技术A 是否是端口冲突??
是否权限问题??
没法只有重装再试试,不知道你的php+mysql for iis有没有配制对
参考技术B 如果是学习,建议使用小旋风Asp Server,功能强大!简单易用,比XP自带的IIS稳定!本回答被提问者采纳

如何在 IIS 7 上启用经典 ASP 中的大文件上传?

【中文标题】如何在 IIS 7 上启用经典 ASP 中的大文件上传?【英文标题】:How do I enable upload of large files in classic ASP on IIS 7? 【发布时间】:2010-01-01 19:11:51 【问题描述】:

最近我不得不让一个旧的 ASP 应用程序在 W2K8 服务器上的 IIS 7.5 中运行。几乎一切正常,除了我似乎无法让它接受大于~200kB 的上传。我确实找到了一个设置,根据我的理解应该是诀窍,在 applicationHost.config 中,我将最大请求大小设置为 100 MB,如下所示:

<location path="TheNameOfMySite">
    <system.webServer>
        <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="104857600" />
            </requestFiltering>
        </security>
    </system.webServer>
</location>

不幸的是,这似乎什么也没做,它仍然拒绝接受任何大于约 200 KB 的文件,并且在日志文件中它给出了以下错误消息:

ASP_0104_:_80004005|Operation_not_Allowed

谷歌搜索指向增加maxAllowedContentLength,就像我在上面所做的那样。所以我的想法很新鲜,但相信聪明的***人群可以在比我写这个问题的时间更短的时间内解决这个问题。

【问题讨论】:

你在正确的轨道上,更改 maxAllowedContentLength 不仅会影响经典 ASP 的所有请求,而且不会更改 maxRequestEntityAllowed (默认为 200 KB)您仍然会看到ASP 0104 : 80004005 Operation Not Allowed。请参阅this answer,了解如何在 Classic ASP 中配置大型上传。 【参考方案1】:

maxAllowedContentLength 控制允许在响应中发送多少数据。但是,您想控制请求中可以接受的数量。这由配置文件的asp 部分中的limits 元素的maxRequestEntityAllowed 属性处理。一个示例可能如下所示:-

<system.webServer>
  <asp>
     <cache diskTemplateCacheDirectory="%SystemDrive%\inetpub\temp\ASP Compiled Templates" />
     <limits scriptTimeout="00:02:00"
        queueConnectionTestTime="00:00:05"
        requestQueueMax="1000"
        maxRequestEntityAllowed="104857600"
        />
  </asp>

您可以在 ASP 功能的属性网格中的“限制属性”类别下的 IIS7 管理器中进行配置。或者,您可以使用命令行:-

appcmd set config /section:asp /limits.maxRequestEntityAllowed:104857600

请注意,扩展此值会增加 DOS 攻击的窗口,在该窗口中,攻击者会将大量内容发送到服务器,因此不要试图将其扩展至超出您真正需要的范围。

【讨论】:

看来我对 Stack Overflow 人群的信任并没有错!这解决了问题,非常感谢!奇怪的是,你会认为 requestLimits 设置会影响请求而不是响应...... 干杯安东尼,有同样的问题,这也为我解决了。 @Johan Driessen:*** - 永远不要失去对它的信任! 编辑将配置标志更改为:/limits.maxRequestEntityAllowed:104857600 最后,一个有效的命令提示符命令(使用%windir%\system32\inetsrv\appcmd)。非常感谢。【参考方案2】:

在 Windows 2008 上 - 进入管理工具 - 服务器管理器 - 展开角色 - 展开 Webserver - 单击 IIS - 并查找要更改文件大小限制的 Web 实例,然后进入选项“ASP”展开“限制属性”,您需要更改的属性是“最大请求实体主体限制”。文件大小始终以字节为单位,因此请使用任何在线计算器来计算字节到 KB 或 MB 的转换。

【讨论】:

【参考方案3】:

首先@AnthonyWJonesanswer 非常有帮助,但没有解决我的问题,事实上它有点不准确,因此我正在写这篇文章。

IIS 6 中的大量上传是一件轻而易举的事,您只需担心一个配置值

AspMaxRequestEntityAllowed

AspMaxRequestEntityAllowed 属性指定 ASP 请求的实体正文中允许的最大字节数。如果存在 Content-Length 标头并指定的数据量大于 AspMaxRequestEntityAllowed 的值,则 IIS 返回 403 错误响应。此属性在功能上与 MaxRequestEntityAllowed 相关,但特定于 ASP 请求。虽然您可以在通用万维网发布服务(WWW 服务)级别将 MaxRequestEntityAllowed 属性设置为 1 MB,但您可以选择将 AspMaxRequestEntityAllowed 设置为较低的值,如果您知道您的特定 ASP 应用程序处理的数据量较少。


随着 IIS 7 的引入,以及使用 *.config 文件的基于 XML 的新分层配置系统,这一切都变得更加复杂了。

现在,您需要正确配置两个设置,然后大文件上传才能按预期工作,并且它们都位于配置的不同区域。

ma​​xRequestEntityAllowed

 <configuration>
   <system.webServer>
     <asp>
       <limits maxRequestEntityAllowed="200000" />
     </asp>
   <system.webServer>
 <configuration>

maxRequestEntityAllowed 属性指定 ASP 请求的实体正文中允许的最大字节数。如果存在 Content-Length 标头并指定的数据量大于 ma​​xRequestEntityAllowed 的值,则 IIS 将返回 HTTP 403 错误响应。

重要提示: 配置上述设置将在一定程度上起作用,正如您从下面的默认值中看到的那样,但是一旦达到该默认值,无论 maxRequestEntityAllowed 设置为什么,服务器都会以 HTTP 404 Not Found 错误响应进行响应。起初这让我很困惑,因为我认为返回 404 错误响应的一定是我的代码。

ma​​xAllowedContentLength

 <configuration>
   <system.webServer>
     <security>
       <requestFiltering>
         <requestLimits maxAllowedContentLength="30000000" />
       </requestFiltering>
     </security>
   </system.webServer>
 </configuration>

指定请求中内容的最大长度,以字节为单位。默认值为 30000000,大约为 28.6MB。

这个设置非常重要,因为它定义了 IIS 请求中的最大字节数(而不是像之前的配置值那样的 ASP 请求)它与响应的内容长度无关 (如前所述)。无论maxRequestEntityAllowed(这是一个asp-classic 特定设置)设置为什么,如果maxAllowedContentLength 未设置或您尝试上传更多的默认值28 MB(大约),您将收到HTTP 404 错误回应。

链接

ASP Limits &lt;limits&gt;

Request Limits &lt;requestLimits&gt;

【讨论】:

【参考方案4】:

对于无法从 CMD 执行 appcmd 命令的用户,您需要将路径更改为 C:\windows\system32\inetsrv,因为该命令位于该文件夹中。

【讨论】:

或者添加PATH环境变量的路径,以备后用。【参考方案5】:

这里接受的解决方案对我不起作用。首先,我的配置中没有指定元素,我不想搞砸配置文件。

我也试过@shoaib-suleman'ssolution,但也没有用。最后,我遇到了此处显示的解决方案,并且成功了。

    打开 IIS 7 管理单元

    选择您要启用以接受大文件上传的网站。

    在主窗口中双击“请求过滤”

    打开窗口后,您可能会在顶部看到一个选项卡列表,例如:文件扩展名、规则、隐藏段等...

    无论您选择哪个选项卡,在主窗口中,右键单击以显示弹出上下文菜单。 在菜单中选择“编辑功能设置”。

    在弹出的表单上,修改“最大允许内容长度(字节)”

【讨论】:

请参阅this answer,了解为什么这样做以及在 IIS 7+ 中出现的常见错误。【参考方案6】:

进入 IIS,选择您的站点并展开它,然后单击右侧面板中的 ASP 图标。

打开“限制属性”图标,将“最大请求实体正文限制”中的值更改为大于 200000 (200kb) 的值。 2000000 大约是 2mb,20000000 大约是 20mb。根据您的需要设置并申请。 就是这样!

享受..

【讨论】:

以上是关于iis中的一个站总是挂掉应该如何解决的主要内容,如果未能解决你的问题,请参考以下文章

IIS 6 站点子应用程序发布问题及解决方式

ubuntu 14.04 上使用adt时频繁挂掉请问如何解决

元素“system.webServer”具有无效的子元素“rewrite”。我应该解决这个问题,如何解决?

如何在 SAST Checkmarx 之后解决 API 控制器中的 XSRF 跨站请求伪造 (CSRF)

404页面做好后,在iis设置404的url 为啥蜘蛛索引不存在的页面的时候返回的是200啊,我应该如何设置404

如何解决“%1 不是有效的 Win32 应用程序”?