【问题标题】:Deploying a .net project to development server将 .net 项目部署到开发服务器
【发布时间】:2012-03-02 01:06:27
【问题描述】:

我在我的机器上本地开发了一个 winforms 应用程序。它从 csv 文件中读取数据并从数据库中查找相关信息(通过执行存储过程)。

我将其移至开发服务器并尝试运行它,但在从 app.config 文件获取 SQL 连接字符串的行时出现错误。错误是:System.NullReferenceException:对象引用未设置为对象的实例。。当然,该应用程序在我的机器上运行良好。

我注释掉了此代码之后的所有行,并显示错误消息。我猜它与 conn.ConnectionString 行有关。

SQL 数据库指向正确的数据库服务器 & UID & pwd 是正确的。什么会导致错误?

    try
    {
        using (SqlConnection conn = new SqlConnection())
        {
            conn.ConnectionString = ConfigurationManager.ConnectionStrings["SilverTicker"].ConnectionString;

【问题讨论】:

  • 写一个简单的应用程序,只连接数据库,放到开发服务器上。如果失败,您可能无法通过您的开发服务器访问数据库服务器。

标签: c# sql-server winforms app-config


【解决方案1】:

您的代码示例中的一个对象返回“null”。我猜是

ConfigurationManager.ConnectionStrings["SilverTicker"].ConnectionString

在该行放置一个断点并检查.ConnectionStrings 集合的内容以确保它包含“SilverTicker”。

我猜ConfigurationManager.ConnectionStrings["SilverTicket"] 是未定义的(可能是因为app.config 在两个环境中不一致),所以访问它的.ConnectionString 属性会引发异常。

【讨论】:

  • 解决方案是使用 settings.settings 接口创建连接字符串。感谢您的信息。
  • @user1111955(我可以叫你user9吗?) .settings 和 app.config 是相当的。我仍然打赌你要么没有部署,要么部署了错误版本的 app.config 与你的应用程序。它没有被编译;你必须部署它。
【解决方案2】:

检查其检索数据与否

如果你写的像

DataSet.Table[0]

检查返回数据和DataSet必须包含表。

【讨论】:

    【解决方案3】:

    看起来您不需要第二个 .connectionstring。您必须将连接字符串放在 app.config 的 connectionstrings 标记中的正确位置。该位置需要在 app.config 中指定,否则您的代码将找不到连接字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 2016-11-12
      • 2015-10-20
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多