我开发了一个MVC5应用程序,我使用StructureMap作为我的DI框架。当我从Visual Studio本地运行它时,该应用程序工作正常。但是当我发布到我们的生产服务器时,我得到了#34;无参数构造函数......"错误。我已经搜索了一个解决方案并找到了一个建议,将下面的代码添加到控制器中的空构造函数中,以获得更详细的异常:
Roses are \textcolor{red}{red}, violets are \textcolor{blue}{blue}.
当我在生产服务器上运行此代码时,我收到错误消息:
public class HomeController : Controller
{
public HomeController()
{
_bll = StructureMap.ObjectFactory.GetInstance<IAgentStatsBll>();
}
private IAgentStatsBll _bll;
public HomeController(IAgentStatsBll bll)
{
_bll = bll;
}
public ActionResult Index()
{
HomeViewModel model = new HomeViewModel {Authors = _bll.GetAuthorsWithCommentsOnDate(DateTime.Now.AddDays(-60))};
return View(model);
}
}
如果我理解错误是正确的,那么它说SM无法确定它应该用于IAgentStatsBll接口的具体类型。但是,这是在DefaultRegistry.cs中配置的: 公共类DefaultRegistry:Registry { #region构造函数和析构函数
No default Instance is registered and cannot be automatically determined for type 'ZendeskAgentStats.BLL.IAgentStatsBll'.
There is no configuration specified for ZendeskAgentStats.BLL.IAgentStatsBll
有人能弄明白为什么它在本地工作但不在服务器上工作吗?