mvc网站不在生产服务器上运行

时间:2016-11-02 12:21:22

标签: angularjs asp.net-mvc vb.net asp.net-mvc-4

我在vb.NET中创建了一个MVC网站,它在本地服务器上运行得非常好。 我已使用Visual Studio的Publish方法将其发布到远程服务器,因此我相信所有必需的文件都应该放在远程服务器上。 Web托管服务运行MVC 4和5.在从远程服务器运行页面时,AngularJS代码无法找到VB控制器。

在AngularJS服务部分,代码为:

this.getPasswords = function () {
    return $http.get("api/passwords");
};

在AngularJS控制器部分中,相关代码为:

getPasswords();
// get from passwordsController.vb
function getPasswords() {
    passwordService.getPasswords()
        .success(function (passwords) {
            $scope.passwords = passwords;
        })
        .error(function (error) {
            $scope.status = 'Error in getting passwords: ' + error.message;
        });
};

VB控制器代码是:

' GET: api/passwords
Function Getpasswords() As IQueryable(Of password)
    Return db.passwords
End Function

该行:

return $http.get("api/passwords");

不与VB控制器中的Getpasswords功能连接。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

最有可能的是,这是一个网址问题。您正在调用api/passwords,这将与正在使用的任何基道相对。例如,如果您已经使用了某个网址,例如http://example.com/foo/bar,那么您实际请求的网址为http://example.com/foo/bar/api/passwords,这几乎肯定是不正确的。您应该始终使用/api/passwords之类的路径。前面的/会导致URL与域相关,即http://example.com/api/passwords