我有一个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)中显示已登录用户的名字和姓氏,正如我所说的那样,它在本地可以正常工作-但每次将其发布到Azure时都会崩溃。
如果我注释掉LoginPartial()方法中的前两行,问题将消失。但话又说回来,方法的目的也是如此。显然,从数据库访问数据存在问题。
有任何想法吗?
我终于弄清楚了为什么它无法从Azure运行。
当将解决方案与数据库一起部署时,我发现不支持用户实例化,因此数据库未成功部署。
通过在SQL Server上手动创建数据库,然后从“发布Web”向导中选择它,而不是附加数据库文件,该应用程序可以在Azure上正常运行。
我还选择了在“发布Web”向导中为每个数据库“执行代码优先迁移”。不知道这是否与它有关,但可能值得一提。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句