2012-08-24 91 views
0

我的情况是类似至Q 1851155至文件夹:
The HTTP verb POST used to access path '/' is not allowed
(但这是与IIS 7,我使用VS 2008的内置。-in Web服务器如果是IIS 6或7引擎盖下面,我不知道如何得到它来配置它)HTTP动词POST使用与Visual Studio 2008的Web服务器ASP.NET“不允许”

我的情况是有可能相似于Q 758780:
The HTTP verb POST used to access path '/Membership/user/' is not allowed
(这表明了链接重新配置,但是我不知道VS 2008的内置web服务器是如何关联的,而不是显式的IIS 6或7配置。)

我的情况并不想让Q 5238080:
The HTTP verb POST used to access path is not allowed
(我明确使用POST;这个问题涉及到通过LinkBut​​ton的间接使用,并不会从一个.aspx页面看起来是这个路径问题)

有问题的代码片段,在网站中使用虚拟路径“/”:

 
    <form id="login" method="post" action="/login/"> 
    ... 
    </form> 

产生的错误页面:

 
    Server Error in '/' Application. 
    The HTTP verb POST used to access path '/login/' is not allowed. 
    ... 

这是一个上最新的Windows 7 64位,与Visual Studio 2008 SP(版本9.0.30729.1 SP),在调试时,使用VS的内置网络服务器。

这种情况给出了错误:
*当从VS 2008“开始调试”时,使用路径“/ login /”。
该文件夹包含单个文件“Default.aspx”。

以下两种情况可以正常工作:
*当从VS 2008使用路径“/ login /”从“开始无调试”时。
*当“开始调试”,使用路径“/login/Default.aspx”。

因此,我在指定文件夹时遇到问题,并要求Web服务器推断引用的是该文件夹的Default.aspx页面。然而,当VS 2008下调试(从VS 2008的应用程序启动,与我的asp.net网站解决方案加载。)该问题只发生

问题:
*是VS 2008的内置Web服务器实际上IIS 6或7?如果是这样,我该如何配置它?
*如果不是,有没有办法告诉VS 2008的内置Web服务器在指定文件夹而不是文件时能够正常工作?
*如果没有,是否有可以下载的备用解决方案(我没有续订我的开发者许可证,所以我现在无法下载微软订购的东西)。
*将更新我的许可证,并升级到VS 2010帮助?如果是这样,我需要做什么才能让解决方案发挥作用?

+0

您在表单中的操作指向一个目录,而不是一个页面。不应该像'action =/login.aspx'这样的东西吗? – Icarus

+0

@伊卡洛斯看到我对jebar8的回应。如上所述,在不调试时工作。因此,服务器从文件夹重定向到默认网页是有效的。但是,最方便的解决方案的确是修改指定页面的路径。 (调试依赖于此的现有站点,这些URL可能分散在整个页面中,甚至是代码后面。) – ToolmakerSteve

+0

@ShahroozJefriㇱ为什么不呢?请解释。 – ToolmakerSteve

回答

1

VS 2008的内置web服务器不是IIS,它被称为卡西尼。当然,它的行为有所不同 - 我们已经完全停止使用它,或者至少会在另一个平台上确认任何HTTP错误,然后才考虑它是一个错误。微软创建IIS Express的差异足以帮助改善本地开发故事。你应该升级到那个,看看在解决卡西尼HTTP问题之前是否会解决这个问题。

+0

Thx,现在试图使用IIS Express。成功将其配置为在不调试的情况下浏览网站(在命令提示符中指定/ path:“D:\ MyWebApp \”中启动服务器)。然后显示为URL“http:// localhost:8080 /”。然而,我从Visual Studio的DEBUGGING没有成功 - 没有停在代码后面的断点处。遵循http://stackoverflow.com/questions/4682727/how-to-configure-visual-studio-2008-to-use-iis-express - 作为外部程序启动iisexpress中的说明 - 但命令窗口刚刚来然后关闭。 – ToolmakerSteve

+0

如果我通过单独的命令窗口手动启动iisexpress,我可以让VisStudio打开正确的页面为“起始URL:http:// localhost:8080 /” - 但仍然没有断点。 – ToolmakerSteve

+0

标记为答案;将IIS Express连接到VS 2008的细节超出了我原来的问题范围。总结:* VS 2008的默认网页浏览器不是IIS,并且已知存在问题; *有一个可以下载的IIS Express。 *升级到VS 2010是另一种解决方案,因为它包含了更好的Web服务器(对吗?)(我希望升级到VS 2010;如果由于某种原因,我会回到VS 2008并使用IIS Express,并且找不到问题那么我会发布一个新问题。) – ToolmakerSteve

0

据我所知,你只能直接发布到一个页面。没有办法只发布到一个目录。 Web服务器不够聪明,无法知道你打算去Index.aspxDefault.aspx。您必须指定页面的完整URL。

是不是有一个原因,你不想使用完整的网址?

+0

Thx,但正如我在我的问题中所述,Web服务器成功地将文件夹路径转换为默认页面,当在HTML Post中使用时,未调试时,证明原理是合理的,除了VS中的一些故障2008的内置Web服务器,当启动ASP.NET调试时。 (如果有必要,我当然会使用完整的网址;我需要调试一个现有的网站,以前的程序员开发的,并且需要尽量减少时间投入到这个任务,同时开发替换网站。) – ToolmakerSteve

+0

你是对的..它终于沉没了,因为我花了更多的时间试图让这个旧的设置工作,而不是简单地修改违规的URL ......(在此之后,我将在VS 2010下做新网站,而不是再混淆VS 2008)。 – ToolmakerSteve

相关问题