我有一个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()方法中注释掉两个第一行,问题就会消失。但话又说回来了,方法的目的也是如此......显然,从数据库访问数据存在问题。
有什么想法吗?
答案 0 :(得分:0)
我终于弄明白为什么它无法从Azure运行。
在与数据库一起部署解决方案时,我发现不支持用户实例化,因此未成功部署数据库。
通过在SQL Server上手动创建数据库,然后从"发布Web" -wizard中选择它而不是附加数据库文件,应用程序从Azure运行没有问题。
我还选择了执行Code First Migrations"对于“发布Web”向导中的每个数据库。不知道这与它有什么关系,但可能值得一提。