2012-03-15 92 views
0

我正在開發一個使用Microsoft MVC3的網站,並且已經將其構建在默認的MVC3應用程序模板上。它訪問外部數據庫並在本地主機上工作。FTP部署了Microsoft MVC3網站。 POST協議不起作用。 GET協議正在工作

我已經將它部署到我通過發佈工具使用ftp方法從storminternet租用的共享服務器(storminternet尚不支持Web部署),並且它運行良好。它訪問數據庫好,並獲得請求正常工作。

但是,任何通過POST協議提交的表單都會返回頁面未找到的錯誤404(這是關於我已聲明[HttpPost]的操作)。

風暴互聯網向我保證,默認情況下允許POST和GET,並且由於幫助臺不是開發人員,我不確定要轉向誰。我對web.config沒有很好的理解,儘管我可以閱讀和理解xml,並通過閱讀和搜索來了解發生了什麼。我曾嘗試將協議添加到根web.config中,並且我認爲我可能會咆哮錯誤的樹。

有沒有其他人有這個問題,或者可能有人知道如何幫助我?

要複製我的錯誤,我的網站是在這裏... 213.229.125.117/$sitepreview/ase-limited.com/Dev(抱歉,它不是藍色,美元被解析到%的東西)

並且到POST請求的最快路徑是單擊左側頂部的「添加構建」,然後單擊對話框頂部的「保存」。

任何幫助將受到感謝。我一直堅持這幾天沒有運氣。

問候 尼克

STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-

它原來是一個sitepreview的已知問題。切換到適當的域對一切進行排序。

+0

我點擊鏈接時出現404錯誤。 – 2012-03-15 15:34:00

+0

嗨達琳。是的,解析器將$符號更改爲%代碼。我不得不編輯鏈接。它複製+粘貼雖然。 – 2012-03-15 15:36:56

回答

1

我注意到當你執行你的AJAX請求時你有一些404的javascript錯誤。例如你有一個請求:

http://213.229.125.117/$sitepreview/ase-limited.com/BuildingManager/Employees/2 

代替:

http://213.229.125.117/$sitepreview/ase-limited.com/Dev/BuildingManager/Employees/2 

注意如何/Dev丟失。這是因爲在你的javascript中,你已經硬編碼了你的url,而不是使用url助手來生成它們。例如,你寫了這樣的事情:

$.ajax({ 
    url: '/BuildingManager/Employees/2', 
    .... 
}); 

其在本地主機上正常工作,因爲你沒有一個虛擬目錄名,但是當你部署你的服務器上,因爲現在正確的路徑是行不通:

$.ajax({ 
    url: '/Dev/BuildingManager/Employees/2', 
    .... 
}); 

因此,您應該絕對不要硬編碼這樣的網址。

而當我嘗試POST表單試圖張貼到http://213.229.125.117/Dev/BuildingManager/SaveBuilding這似乎是一個非常古怪的網址,因爲它缺少整個開始。再一次:永遠不要硬編碼的網址。始終使用網址助手。

+0

是的,我知道這個錯誤很難。我今天早上在@ Url.Content(「〜/ fghfg/hfdgh/fgh」)中包裝了URL。我錯過了那一個。你是如何得到http://213.229.125.117/Dev/BuildingManager/SaveBuilding?我收到http://213.229.125.117/$sitepreview/ase-limited.com/Dev/BuildingManager/SaveBuilding。我不知道它是否有幫助,但我使用Chrome瀏覽器 – 2012-03-15 15:56:59

+0

我使用了FireFox。你是否設法解決這個問題? – 2012-03-15 15:57:58

+0

不幸的不是。我在JavaScript中修復了這個URL,非常感謝。我會錯過它!我的表單仍然沒有發佈,並且URL通過助手正確地形成。我也一直在使用FireFox。唯一的問題是它的運行速度稍慢,但我的筆記本電腦幾乎不是機器的野獸。 – 2012-03-15 16:09:01