2012-08-24 140 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

相關問題