首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启动网站时ASP.NET数据库连接关闭

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

Stack Overflow用户
提问于 2014-01-16 07:31:26
回答 3查看 935关注 0票数 0

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

发生的事情是,一旦我在Chrome/Firefox等浏览器中单击Debug,我的数据库连接就会关闭(红叉出现)!(但当我手动刷新它时,它会有滴答-直到那时)我有一种感觉,这与web.config中的connectionString有关。我不喜欢连接字符串,对我来说它们似乎都是行话。一个测试项目到底需要多少参数?

代码语言:javascript
复制
<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

如果我右键单击数据库并单击>Modify Connection,然后单击test connection,我会得到一个"This connection not be test a the指定数据库文件不存在“

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

代码语言:javascript
复制
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();

希望这些信息足以让你们发现问题所在。感谢任何能提供帮助的人!再说一次,我是个新手,不完全确定什么信息是完全需要的。

EN

回答 3

Stack Overflow用户

发布于 2014-01-16 07:34:42

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

代码语言:javascript
复制
attachdbfilename=|DataDirectory|E:\Visual Studio 2013\Projects\Pets\Pets\App_Data\PetsDB.mdf;

应该是:

代码语言:javascript
复制
attachdbfilename=|DataDirectory|\PetsDB.mdf;
票数 2
EN

Stack Overflow用户

发布于 2014-01-16 07:36:31

也许this能帮上忙?

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

票数 0
EN

Stack Overflow用户

发布于 2014-01-16 09:31:31

您提到,当您单击测试连接时,您会得到一个错误。你的题目可能有误导性,因为我可以假设你根本没有建立连接。

你能去“服务器资源管理器”->“数据连接”->“添加连接”-> "Microsoft SQL Server数据库文件“吗?我假设你是直接使用.mdf文件而不是连接到SQL server?

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21150502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档