【问题标题】:Null Exception when retrieving connectionstring in .NET在 .NET 中检索连接字符串时出现空异常
【发布时间】:2011-09-26 13:39:07
【问题描述】:

我的 web.config 中有以下内容:

<configuration>
  <connectionStrings>
    <add name="strConDev" connectionString="Data Source=dbSource;Initial     Catalog=CatalogInitial;User Id =DEFAULT; Password=PASSWORD" />
  </connectionStrings>
</configuration>

我正在尝试使用以下代码在 Application_Start 方法中检索 global.asa 中的连接字符串:

        var con = ConfigurationManager.ConnectionStrings["strConDev"];
        string strConn = con.ConnectionString;

然而,这总是返回一个空值给 con。我在这里做错了什么?这是我在网上找到的语法。

【问题讨论】:

  • 我不确定这是否是原因,但您错过了providerName。编辑:这是可选的:msdn.microsoft.com/en-us/library/htw9h4z3.aspx
  • 您确定web.config 在网站的根目录中吗?您能从web.config 中阅读其他内容吗?如果在实时服务器上进行测试,您是否记得将 web.config 上传到该服务器?
  • 我发现了我的错误。我使用 Views 文件夹中的 web.config 而不是全局 web.config 文件来声明我的连接字符串。

标签: .net asp.net asp.net-mvc


【解决方案1】:

语法看起来都是正确的。您可以尝试几件事:

  • 将连接名称从 web.config 复制/粘贴到您的代码中,以确保名称正确匹配。
  • 确保 web.config 格式正确。打开它,给编译器几秒钟的时间来验证它,然后检查你的错误列表是否有任何警告。即您可能输入了错误的&lt;connectionStrings&gt;,或者您可能没有将元素添加到正确的部分中
  • 您是发布网站还是调试网站?如果发布,请确保您没有更改 web.config 连接字符串的任何转换 - 通过检查发布位置并在那里打开 web.config 以查看它是否与您的原始位置匹配来验证这一点。

【讨论】:

  • 我只是在本地调试网站。实际上我才刚刚开始。错误检查出来,我已经粘贴了连接名称。
  • Perculiar,正如@Shadow Wizard 所提到的,也许尝试将 appSetting 添加到 web.config,看看是否可以通过相应的方法检索它。
【解决方案2】:

如果您改用 WebConfigurationManager 类(来自 System.Web.Configuration)会怎样

string connString = WebConfigurationManager.ConnectionStrings["strConDev"].ConnectionString;

【讨论】:

    猜你喜欢
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    相关资源
    最近更新 更多