首页 新闻 搜索 专区 学院

MVC4 数据库访问报错

0
悬赏园豆:50 [待解决问题]

环境:vs2012 

数据库:SQL Server 2012

身份验证:windows 身份验证

服务器:本地 IIS 7

框架:MVC4

错误信息:

Cannot create file
'D:\H2\tools\CTools\CTools\App_Data\CTools.Models.codeVersionDbContest.mdf'
because it already exists. Change the file path or the file name, and retry the
operation.
CREATE DATABASE failed. Some file names listed could not be
created. Check related errors.

代码:

IQueryable<DiffInfo> persons = from p in db.diffinfors
                          orderby p.ID descending
                          select p;
在本地 IIS 调试到这一句的时候,提示数据库已经存在,不能创建数据库。使用vs自带的 IIS Express 调试则正常,没有任何报错,求解?

问题补充:

 IQueryable<DiffInfo> persons = null;
            try
            {
                persons = from p in db.diffinfors
                          orderby p.ID descending
                          select p;
                // long totalCount = db.diffinfors.Count();
            }
            //catch (System.Data.SqlClient.SqlException e)
            //{
            //    string err = e.InnerException.ToString();
            //}
            catch (System.Data.ProviderIncompatibleException e)
            {
                /* err = "System.Data.ProviderIncompatibleException:
                 * 提供程序未返回 ProviderManifestToken 字符串。
                 * ---> System.Data.SqlClient.SqlException:
                 * 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。
                 * 未找到或无法访问服务器。请验证实例名称是否正确并且
                 * SQL Server 已配置为允许远程连接。
                 * (provider: SQL Network Interfaces, error: 50 - 发生了本...
                 *
                 * 修改IIS权限:应用程序池->高级设置->进程模型->标识->LocalSystem
                 * */
                string err = e.InnerException.ToString();
            }

这行代码一直抛出这个异常,最终查询返回为空,连不上数据库

施雨的主页 施雨 | 初学一级 | 园豆:134
提问于:2013-04-15 15:54
< >
分享
所有回答(2)
0

修改你的WebConfig 的ConnectionString,明显不是连的SqlServer 。

luofer | 园豆:468 (菜鸟二级) | 2013-04-15 16:48

 <!--<add name="codeVersionDbContext" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\CTools.mdf;Integrated Security=True;uid=sa;pwd=h2-ctools" providerName="System.Data.SqlClient" />-->
    <add name="codeVersionDbContext" connectionString="Server=10.18.68.114,1434\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CTools.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />
    <!--add name="codeVersionDbContext" connectionString="Data Source=ARIESSHI-PC0\SQLEXPRESS;AttachDbFilename=D:\H2\tools\CTools\CTools\App_Data\CTools.Models.codeVersionDbContest.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />-->
     各种形式的连接字符串都试过了,对结果没有任何影响,

支持(0) 反对(0) 施雨 | 园豆:134 (初学一级) | 2013-04-15 19:56
0

一个高手将我的数据库访问类的基类进行初始化,将数据库连接传入DbContext基类后,一切搞定。如果不初始化基类,在使用IIS EXPRESS调试的时候是OK的。

由于我之前设置了许多和SQL权限,IIS权限相关的东西,后面还有研究一下该问题和我之前的权限设置是否相关。

施雨 | 园豆:134 (初学一级) | 2013-04-16 08:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册