繁体   English   中英

启动网站时ASP.NET数据库连接关闭

[英]ASP.NET database connection closes when launching website

我决定使用C#在ASP.NET MVC中开始编程我一直在关注教程并将它们实现到我自己的项目中。

一旦我点击Chrome / Firefox等中的Debug,我的数据库连接就会关闭(出现红叉)! (但是当我手动刷新它时,它有一个勾 - 直到那一点)我感觉它与web.config中的connectionString有关。 我不喜欢连接字符串,对我来说,他们似乎充满了行话。 您真正需要多少个参数才能进行测试项目?

<connectionStrings>
<add name="PetsDBEntities" connectionString="metadata=res://*/MainDBModel.csdl|res://*/MainDBModel.ssdl|res://*/MainDBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|E:\Visual Studio 2013\Projects\Pets\Pets\App_Data\PetsDB.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
providerName="System.Data.EntityClient" />
</connectionStrings>

不幸的是,我对c#/ asp.net mvc的了解非常有限,因此遵循了一个教程,但我知道你们这些人真的很擅长你的工作。

名为PetsDBEntities的数据库具有以下属性。

数据源:Microsoft SQL Server数据库文件(SQL客户端)数据库文件名:projects / app_data / PetsDB.mdf

如果我右键单击数据库并单击>修改连接然后单击测试连接我得到“此连接无法测试,因为指定的数据库文件不存在”

这是代码中断的地方。 注意:提交的值将被传递,它似乎无法连接并将行添加到数据库。

if (ModelState.IsValid)
{
    using( var db = new PetsDBEntities())
   {
        var crypto = new SimpleCrypto.PBKDF2();

        var encrpPass = crypto.Compute(user.Password);

        var regUser = db.Users.Create();

        regUser.Email = user.Email;
        regUser.Password = encrpPass;
        regUser.PasswordSalt = crypto.Salt;
        regUser.UserID = Guid.NewGuid();

        db.Users.Add(regUser);
        db.SaveChanges(); //--------THIS IS WHERE I GET AN ERROR---------

        return RedirectToAction("Index", "Pictures");
    }
}
else
{
    ModelState.AddModelError("", "Login Data is incorrect!");
}

return View();

希望这是足够的信息让你们发现问题所在。 Thansk对任何可以帮助的人都有帮助! 同样,我是新手,并不完全确定完全需要哪些信息。

您的问题可能与db文件名有关。

attachdbfilename=|DataDirectory|E:\Visual Studio 2013\Projects\Pets\Pets\App_Data\PetsDB.mdf;

应该:

attachdbfilename=|DataDirectory|\PetsDB.mdf;

也许有用吗?

SQL Server的简单连接字符串可以是Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword; Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword;

您提到当您单击测试连接时,您收到错误。 您的问题标题可能会产生误导,因为我可以假设您根本没有建立连接。

你可以转到“服务器资源管理器” - >“数据连接” - >“添加连接” - >“Microsoft SQL Server数据库文件”,我假设您直接使用.mdf文件而不是连接到SQL服务器?

单击“测试连接”,如果一切顺利,您可以从属性中检索连接字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM