标签: iis-6

在IIS上将表单发布到PHP时,导致HTTP 405"无效方法(HTTP动词)"错误的原因是什么?

我在PHP(5.2.9-1)应用程序中有一个表单导致IIS(Microsoft-IIS/6.0)在POST时抛出以下错误:

无法显示您要查找的页面,因为使用了无效的方法(HTTP谓词)来尝试访问.

这是一个HTTP 405状态代码.应用程序中的所有其他表单都有效,因此我认为PHP页面的IIS'动词'设置是正确的.

这是客户的服务器,我无权访问以验证设置或测试代码.我所能做的就是发送客户替换文件.IIS服务器上的其他客户没有此类问题.

表格非常简单:

<form method="post" action="index.php">
    ... fields ... 
</form>
Run Code Online (Sandbox Code Playgroud)

什么可以导致IIS仅在一个表单上抛出该错误,但在其他表单上工作正常?

php iis iis-6

33
推荐指数
4
解决办法
18万
查看次数

如何使用MsBuild以编程方式在IIS(6.0和7.0)中停止或启动网站?

我有Windows Server 2003(IIS 6.0)和Windows Server 2008(IIS 7.0)服务器,我使用MSBuild来部署Web应用程序.

我需要进行安全部署,并执行此操作:

  1. 停止IIS 6中的网站(或IIS 7中的应用程序),而不是停止AppPool.

  2. 检查网站是否停止; 没跑

  3. 如果网站已停止,请执行另一项部署任务.

  4. 启动IIS 6(或IIS 7中的应用程序)网站,

我怎样才能做到这一点?

更新:对我来说:IIS6WebSite和IIS6AppPool(以及IIS7),在尝试停止网站或AppPool时是否等待停止状态?

当我执行网站停止操作(或AppPool的停止操作)时,我需要确保100%网站已停止,然后,只有网站停止时,我才能执行其他目标.

c# msbuild iis-7 iis-6 web-deployment

33
推荐指数
2
解决办法
3万
查看次数

什么可能导致"客户端断开连接"ASP.NET异常?

我的.NET 3.5应用程序偶尔抛出以下异常System.Web异常:

客户端已断开连接

为什么会发生这种异常?我的应用程序在负载均衡的Windows Server 2003 IIS 6.0服务器上运行.

asp.net iis-6 load-balancing windows-server-2003

32
推荐指数
2
解决办法
3万
查看次数

ASP.NET IIS - 请求何时排队?

Thomas Marquardt撰写的以下文章描述了IIS如何处理ASP.Net请求,可配置为运行的最大/最小CLR工作线程/托管IO线程,涉及的各种请求队列及其默认大小.

现在根据文章,IIS 6.0中发生以下情况:

  1. ASP.NET从IIS IO线程中获取请求,并将"HSE_STATUS_PENDING"发布到IIS IO线程
  2. 请求被移交给CLR Worker线程
  3. 如果请求具有高延迟并且所有线程都被占用(线程计数接近httpRuntime.minFreeThreads),则请求将发布到应用程序级别请求队列(此队列是每个AppDomain)
  4. ASP.NET还会检查并发执行请求的数量.文章指出"如果并发执行请求的数量太高",它会将传入的请求排队到ASP.NET全局请求队列(这是每个工作进程)(请检查更新2)

我想知道什么是"阈值",此时ASP.NET认为当前执行它的请求数太高,然后开始将请求排队到全局ASP.NET请求队列?

我认为这个阈值将取决于最大工作线程数的配置,但可能有一些公式基于哪个ASP.NET将确定并发执行请求的数量太高并开始将请求排队到ASP.NET全局请求队列.这个公式可能是什么?或者此设置是否可配置?


更新
我再次阅读文章,在评论部分我发现了这个:

1)在IIS 6和IIS 7经典模式下,每个应用程序(AppDomain)都有一个队列,用于维护工作线程的可用性.如果可用工作线程数低于httpRuntime minFreeThreads指定的限制,则此队列中的请求数会增加.当超过httpRuntime appRequestQueueLimit指定的限制时,请求将被拒绝,并显示503状态代码,并且客户端收到带有"服务器太忙"消息的HttpException.还有一个ASP.NET性能计数器"应用程序队列中的请求",指示队列中有多少请求.是的,CLR线程池是.NET ThreadPool类公开的线程池.

2)requestQueueLimit命名不佳.它实际上限制了ASP.NET可以同时处理的最大请求数.这包括排队的请求和正在执行的请求.如果"请求当前"性能计数器超过requestQueueLimit,则将使用503状态代码拒绝新的传入请求.

因此,基本上requestQueueLimit限制了排队的请求数(我假设它将在应用程序队列中排队的请求数加上全局ASP.Net请求队列加上当前正在执行的请求数)并正在执行.虽然这不能回答原始问题,但它确实提供了有关何时因为大量并发请求/高延迟请求而可能收到503服务器忙碌错误的信息. (检查更新2)


更新2 我的理解中存在错误.我混淆了IIS 6和IIS 7的描述.
实际上,当ASP.NET以集成模式托管在IIS 7.5和7.0上时,应用程序级队列不再存在,ASP.NET维护一个全局请求队列.
因此,如果认为执行请求的数量很高,IIS 7/7.5将开始将请求排队到全局请求队列.这个问题更适用于IIS 7/7.5而不是6.

IIS 6.0而言,没有全局ASP.NET请求队列,但以下情况属实:
1.ASP.NET从IIS IO线程中获取请求并将"HSE_STATUS_PENDING"发布到IIS IO线程
2.请求被移交给CLR工作线程
3.如果请求具有高延迟并且所有线程都被占用(线程计数接近httpRuntime.minFreeThreads),那么请求是发布到应用程序级别请求队列(此队列是每个AppDomain)
4.此外,ASP.NET还会在接受新请求之前检查排队和当前正在执行的请求数.如果此数字大于processModel.requestQueueLimit指定的值,则将拒绝传入的请求,并显示503服务器繁忙错误.

asp.net iis multithreading iis-6

32
推荐指数
1
解决办法
4万
查看次数

ASP.NET MVC eurl.axd错误

使用以下步骤:

(我已经检查过这个类似的帖子,这不能解决我的问题.)

  1. 在Windows Server 2003/IIS6下,我创建了一个名为"testapp"的新站点
  2. 在VS2010中,我创建了一个新的ASP.NET MVC 2应用程序.
  3. 我添加了一个名为"Info"的视图,其中包含以下代码:

    <h2>System</h2>
    
    <h3>Request</h3>
    
    <%
        foreach (string key in Request.Headers)
        {
            Response.Write(string.Format("<p>{0}={1}</p>"
                    , key
                    , Request.Headers[key])
                    );
        }
    
    
    %>
    
    Run Code Online (Sandbox Code Playgroud)

除了标准头文件,我还看到了这个:

   X-REWRITE-URL=/home/info/eurl.axd/e3299f29f8043d4f8a27e0f1d0c40971
Run Code Online (Sandbox Code Playgroud)

我正在使用Helicon ISAPI Rewrite 3,它正在生成"X-REWRITE-URL"标题.

我的问题是:/eurl.axd?....来自哪里?我已经看过这篇文章,但由于这是一个带有新应用程序池的新文件夹中的空白应用程序,因此在此Web文件夹中没有运行2.0.*应用程序.没有虚拟文件夹指向另一个目录等.该站点配置为ASP.NET 4.0,已正确注册.

问题是eurl.axd正在调整我的MVC路由中的参数.

"ASP.NET 4.0重大更改"一文中的选项并不适用于我,因为此应用程序中没有任何2.0组件,我需要使用无扩展名的URL.

更新我刚刚注意到GAC中的System.Web.MVC是版本2.0.0.0.是否应该通过安装VS2010和4.0框架将其更新到4.0?

我不明白为什么我在默认的ASP.NET MVC 2应用程序中看到此错误.救命!!

2011年2月更新 - 已解决

终于尝试通过注册表黑客禁用无扩展名URL,问题就消失了.我发现禁止无扩展的URL使得无扩展的URL工作(使用IIS6中的通配符映射)是违反直觉的,但我会采取我能得到的.

2014年12月更新

(风流|快乐|和平)(圣诞节|光明节|宽扎节|十二月).

我忘了提到每个其他Windows更新都会破坏注册表更改.这似乎是一个奇怪的问题,一个请求http://site.dom/bob会失败,而http://site.dom/bob/成功.玩得开心!(注意尾随斜杠.)

asp.net-mvc iis-6 .net-4.0

30
推荐指数
2
解决办法
2万
查看次数

使用NTLM避免每个请求的401响应

我们这里有一个使用基于NTLM的Windows身份验证的asp.net 3.5应用程序.该系统在专用网络上运行,该网络实际上分布在不同的地理位置(通过VPN连接).

我们现在正在尝试优化网站的性能.由于NTLM的工作方式,每个对IIS的新请求都由3个不同的请求组成,而前2个是401个响应.我们正在尝试将这些请求的数量最小化,仅在会话开始时.我们找到解决方案.不幸的是它并没有改变任何东西,我们继续得到这个401响应(消耗时间).

为了看到我第一次使用Fiddler应用程序的流量.不知何故,当我使用Fiddler时,在会话开始时只有一个身份验证过程(完全按照我的意愿),但当我关闭Fiddler并通过WireShark检查流量时,我可以看到每个请求仍然有401响应.

使用的客户端是IE6,IIS版本6.

有人可以提供建议吗?

iis ntlm iis-6 http-status-code-401

28
推荐指数
1
解决办法
4万
查看次数

如何在IIS中部署Flask应用程序?

任何人都可以帮我在IIS 6上运行Flask应用程序吗?我曾尝试使用isapi-wsgi,但是当我访问虚拟目录地址时,我得到一个页面,上面写着"找不到指定的模块".还有其他选择吗?

下面是我为isapi-wsgi编写的Python脚本.在IIS管理器中创建了虚拟目录并且一切正常,但该站点无法正常工作.

from wof import app
import os

app.secret_key=os.urandom(24)

import isapi_wsgi
def __ExtensionFactory__():
    return isapi_wsgi.ISAPISimpleHandler(app)

if __name__ == '__main__':
    from isapi.install import *
    params = ISAPIParameters()
    sm = [ScriptMapParams(Extension="*", Flags=0)]
    vd = VirtualDirParameters(Name="WOFPy_Sondes", Description="ISAPI-WSGI for WOFPY Sondes test", ScriptMaps=sm, ScriptMapUpdate="replace")
    params.VirtualDirs = [vd]
    HandleCommandLine(params)
Run Code Online (Sandbox Code Playgroud)

python iis-6 wsgi isapi-wsgi flask

26
推荐指数
1
解决办法
2万
查看次数

IIS6上的ASP.NET MVC

在哪里可以找到关于在IIS6上运行ASP.NET MVC的最佳实践的一些好的指针?

我还没有看到任何提供IIS7托管的网络主机的现实选项.主要是因为我不住在美国

所以我想知道如何在ASP.NET MVC中最好地构建应用程序,并使其可以轻松地在IIS6和IIS7上进行部署.请记住,这适用于标准Web主机,因此IIS6中无法访问ISAPI筛选器或特殊设置.

在开发ASP.NET MVC应用程序以定位IIS6时,还有什么需要考虑的吗?任何不起作用的功能?

更新:一个更大的问题是路线的问题.模式{controller}/{action}将适用于IIS7,但不适用于需要{controller} .mvc/{action}的IIS6.那么我该如何透明呢?请再说一遍,没有ISAPI,也没有IIS设置.

.net deployment asp.net-mvc iis-6

25
推荐指数
2
解决办法
1万
查看次数

如何确定哪个w3wp.exe进程属于哪个网站?

我有一个IIS6 Web服务器,托管两个应用程序池.有时候,其中一个w3wp进程会使CPU飙升一段时间,而且两个应用程序池似乎都会受到影响.我不确定哪一个是哪个,如果没有这些信息,我不知道应该责怪哪个应用程序.

如何判断哪个w3wp属于哪个App Pool?

iis-6 w3wp

25
推荐指数
2
解决办法
2万
查看次数

iis6上的Asp.net mvc 4:"页面无法找到"

我无法在IIS 6上运行ASP.Net MVC 4.

首先,我根据Phil Haack的博客文章:IIS 6演练中的ASP.NET MVC,在设置无扩展URL之后得到了"目录列表被拒绝"并且已经解决了.

现在,我收到"页面无法找到"404页面.

这是MVC 4 beta中一个简单的ASP.Net Web Api项目.

iis-6 asp.net-mvc-4

25
推荐指数
1
解决办法
2万
查看次数