【问题标题】:How to configure Connection String in <appSettings> </appSettings> tab for ASP.Net MVC3如何在 <appSettings> </appSettings> 选项卡中为 ASP.Net MVC3 配置连接字符串
【发布时间】:2011-08-24 00:43:16
【问题描述】:

使用 VS2010 的 Net MVC3 应用程序,它允许在选项卡中配置数据库连接字符串,如下所示

我的托管服务器如何不支持它并强制我将连接字符串放入选项卡中,如下所示

对于基于 MVC 3 实体框架代码优先模型的应用程序,我如何使用 ConnectionString。是否可以将连接字符串放在选项卡中,如果可以的话,我如何在我的 ASP.Net MVC3 实体框架代码优先模型中使用它?

【问题讨论】:

    标签: asp.net-mvc connection-string


    【解决方案1】:

    使用 connectionStrings 部分,而不是 appSettings

        <connectionStrings>
            <add name="MyApp" connectionString="DataSource=|DataDirectory|MyApp.sdf" providerName="System.Data.SqlServerCe.4.0" />
        </connectionString> 
    

    这假设您的 DbContext 类也称为 MyApp。您需要更改上面连接字符串中的 MyApp 以匹配您的 DbContext 类的名称。

    该连接字符串还假设您的项目中有一个 App_Data 文件夹。如果不这样做,您可以通过右键单击您的 Web 项目,选择添加、Asp.Net 文件夹,然后选择 App_Data 来添加它。

    如果所有这些设置正确,当您运行应用并点击使用 DbContext 的页面时,它将自动在 App_Data 文件夹中生成 sdf 文件。您也可以使用普通的 SQL Server 连接字符串,但 CE 是一种很好的方式,可以确保一切都按照您开始时的方式运行。

    【讨论】:

    • 嗨,Nathan,如果我使用你提到的 connectionString,那么它在我的本地机器上工作正常,但在我的 Web 服务器上不工作,它给了我无效提供程序名称的错误。当我询问托管服务提供商时,他们建议我在 web.config 中的 标记中配置连接字符串,而无需提供提供商名称。您知道如何在 web.config 文件的 标记内配置连接字符串并将其用于基于 MVC3 Entity Framework Code First Model 的应用程序吗?
    • 您在服务器上使用什么类型的存储?它是真正的 SQL 服务器吗? SqlCE? MySQL?我不相信您可以使用 appSettings 部分来存储实体框架使用的连接字符串。
    • 它是我的共享虚拟主机服务器上的 SQL Server。我找到了 Database.DefaultConnectionFactory 的一个选项,我们可以在其中传递存储在 中的连接字符串。但我不知道如何在 Global.asax 中配置它。我们可以直接在控制器页面上使用它,我们需要以以下方式触发查询 Database.DefaultConnectionFactory.CreateConnection(System.Configuration.ConfigurationManager.AppSettings["ConnctionString"].ToString());如果您有任何想法,请告诉我。
    • Nathan 必须有某种方法在共享主机环境中部署 MVC 应用程序,在这种环境中,我们对数据库删除和创建访问权限有太多限制。如果有其他人可以帮助我,请将此问题作为实际问题提供您的意见,将来可能对其他人有所帮助
    • 我仍然无法相信您的托管服务提供商会阻止您在 .config 文件的正确位置设置连接字符串。您可以使用用户名/密码的虚拟文本发布您的连接字符串吗?发布整个 标签,包括提供者。此外,您的 Web 项目中有一个名为“添加可部署依赖项”的上下文菜单项,它可以帮助您将项目部署到可能位于计算机上的 GAC 中的共享环境(例如 MVC dll)。
    【解决方案2】:

    最后在做了太多的研发之后,我成功地在共享托管服务器上部署了我的 MVC3 应用程序,并且数据库连接正常工作,没有任何问题。我尝试在共享托管服务器上使用实体框架代码优先模型部署我的 MVC3 应用程序,但它没有'不允许我,因为我们没有共享托管服务器上的数据库创建和删除权限。我尝试了太多,它应该允许我首先使用实体​​框架代码托管我的应用程序,但由于共享托管数据库服务器的访问权限有限,我无法执行 id。最后我需要找到一些替代方法,我尝试使用实体框架数据库优先模型部署我的 MVC3 应用程序。它将为您的模型类生成 edmx 文件,但您可以使用 ADO.Net DBContext 代码生成器的 T4 模板将其更新为 poco 类。请观看 Julie Lerman 的以下视频以了解更多信息。

    http://msdn.microsoft.com/en-us/data/gg702905

    如上视频所示开发应用程序后,使用连接字符串中的托管服务器数据库值更改您的 web.config 设置,然后发布您的应用程序并将其上传到您的 FTP 服务器。你发现它没有任何问题。

    【讨论】:

      猜你喜欢
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 2016-09-23
      • 2022-08-03
      • 2021-11-06
      相关资源
      最近更新 更多