部署到Azure时:System.Data.SqlClient.SqlException:'ON'附近的语法不正确

时间:2015-02-28 04:55:15

标签: asp.net sql-server azure asp.net-mvc-5 azure-sql-database

我有一个Web应用程序,每当我将它部署到Azure时都会返回以下错误:

  

System.Data.SqlClient.SqlException:'ON'附近的语法不正确

它告诉我错误来自我的_Layout.cshtml中的第45行:

@Html.Action("LoginPartial", "Home")

现在,在HomeController我有以下内容:

    [AllowAnonymous]
    [ChildActionOnly]
    public ActionResult LoginPartial()
    {
        var userId = User.Identity.GetUserId();
        var model = context.Users.Find(userId);

        // In case no such user is found and the model is called
        if (model == null)
        {
            model = new ApplicationUser()
            {
                FirstName = "N/A",
                LastName = "N/A"
            };
        }

        return PartialView("~/Views/Shared/_LoginPartial.cshtml", model);
    }

...每当我在本地调试应用程序时都能正常工作 - 即使远程连接数据库(它们从Azure中的SQL Server运行)。

我对此代码的意图是从共享视图(_LoginPartial.cshtml)显示登录用户的FirstName和LastName,正如我所说它在本地工作正常 - 但每次我将其发布到Azure时都会崩溃。 / p>

如果我在LoginPartial()方法中注释掉两个第一行,问题就会消失。但话又说回来了,方法的目的也是如此......显然,从数据库访问数据存在问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我终于弄明白为什么它无法从Azure运行。

在与数据库一起部署解决方案时,我发现不支持用户实例化,因此未成功部署数据库。

通过在SQL Server上手动创建数据库,然后从"发布Web" -wizard中选择它而不是附加数据库文件,应用程序从Azure运行没有问题。

我还选择了执行Code First Migrations"对于“发布Web”向导中的每个数据库。不知道这与它有什么关系,但可能值得一提。