FTP部署了Microsoft MVC3网站。 POST协议不起作用。 GET协议正在运行

时间:2012-03-15 15:30:50

标签: asp.net-mvc-3 post web-config web-deployment

我正在使用Microsoft MVC3开发一个网站,并在默认的MVC3应用程序模板上构建它。它访问外部数据库并在localhost上工作。

我已经将它部署到我从storminternet通过发布工具使用ftp方法租用的共享服务器(storminternet还不支持web部署),并且运行良好。它可以访问数据库,并获得请求正常工作。

但是,任何通过POST协议提交的表单都会返回找不到页面的错误404(这是我已声明[HttpPost]的操作)。

Storm互联网向我保证默认允许POST和GET,并且由于帮助台不是开发人员,我不确定该向谁求助。我对web.config没有很好的理解,虽然我可以阅读和理解xml并通过阅读和谷歌搜索看看发生了什么。我已经尝试将协议添加到root 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的一个已知问题。切换到正确的域排序一切。

1 个答案:

答案 0 :(得分: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如何丢失。那是因为在你的javascripts中你已经硬编码你的网址,而不是使用网址助手来生成它们。例如,你写了这样的东西:

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

在localhost上工作正常,因为您没有虚拟目录名,但在服务器上部署时不起作用,因为现在正确的路径是:

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

出于这个原因,你绝对不应该像这样对网址进行硬编码。

当我尝试将帖子张贴到试图发布到http://213.229.125.117/Dev/BuildingManager/SaveBuilding时,这似乎是一个非常奇怪的网址,因为它缺少整个开头。再一次:永远不要硬编码网址。始终使用网址助手。