【发布时间】:2015-08-10 16:35:06
【问题描述】:
我使用 WebAPI 创建了一个 MVC 项目。我创建了一个控制器(从 ApiController 派生)并添加了以下行
string connstring = System.Configuration.ConfigurationManager.ConnectionStrings["isrOAK"].ToString();
它会抛出一个空异常,“对象引用未设置为对象的实例”。
但是,有一个 HomeController(从 Controller 派生)被自动添加到项目中。连接字符串有效。
知道为什么以及如何让它在派生的 Api 控制器上工作吗?
更新:我正在使用 UNIT TEST 项目来测试 WebAPI 项目。我从单元测试方法调用 HomeController Index() 并且它没有抛出相同的异常。单元测试项目中需要什么才能使获取连接字符串起作用?
【问题讨论】:
-
HomeController 与 WebAPI 控制器在同一个项目中?这里什么都不应该改变;如果 ConnectionStrings["isrOAK"] 在您所在项目的 web.config 中,则会发生该错误...
-
null具体是什么?您确定该条目在运行时使用的配置中吗?没有什么可以阻止它在 API 控制器中工作。 -
我怀疑找不到按名称的连接字符串。在这一行设置断点,分析如下:
System.Configuration.ConfigurationManager.ConnectionStrings["isrOAK"]。那是空的吗? -
@ThomasStringer 你是对的!!而且有一种代码味道,因为他正在调用 ToString() 。
标签: asp.net asp.net-mvc