我已经构建了一个MVC 4 Intranet应用程序,该应用程序使用本地数据库存储信息。现在,我想将其部署在服务器条目上,而不是保存到数据库中。我已经尝试了所有我能想到的一切。

有没有办法告诉应用程序使用SQL数据库代替IIS中的本地实例?

这是我的web.config中的连接字符串

- 编辑:下面格式的代码,以便在问题中显示。 - -

<add name="MyCalendarConnectionString" connectionString="Data Source=DST09119\SQLEXPRESS;Initial Catalog=MyCalendar;Integrated Security=True"
      providerName="System.Data.SqlClient" />
    <add name="SampleConnectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Sample.mdf;Integrated Security=True"
      providerName="System.Data.SqlClient" />
有帮助吗?

解决方案

有两种方法:

  1. 派生后命名您的连接字符串 DbContext 班级(即 DbContextXyzEntities, ,然后命名您的conn字符串 XyzEntities <add name="XyzEntities" connectionString"..... />

  2. 将连接字符串的名称传递到基本构造函数 DbContext. 。您想使用以下构造函数:

    public class XyzEntities : DbContext
    {
        public XyzEntities( string nameOrConnectionString ) 
            : base( nameOrConnectionString )
        {
        }
    }
    
    // usage
    var dbContext = new DerivedDbContext( "MyCalendarConnectionString" );
    

更新:

如果您只是无法连接到SQL Server Express实例,则是由于使用 Integrated Security=True - 除非将应用程序池的身份设置为可以访问数据库的用户,否则将拒绝连接。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top