【问题标题】:deployment problem - files point to dev version部署问题 - 文件指向开发版本
【发布时间】:2011-04-09 03:42:45
【问题描述】:

我刚刚在 vs2008 中发布了一个网站并将其 FTP 到实时站点,并且某些文件指向开发服务器时出现错误??

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

来源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[NullReferenceException:对象引用未设置为对象的实例。] Support.Models.ConsumerDataContext..ctor() 在 C:_work\Models\Consumer.designer.cs:41 Support.Models.Consumers..ctor() 在 C:_work\Models\Consumers.cs:17 Support.Controllers.HomeController..ctor() 在 C:_work\Controllers\HomeController.cs:22

[TargetInvocationException:调用的目标已抛出异常。] System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandle& ctor,Boolean& bNeedSecurityCheck) +0 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) +146 System.RuntimeType.CreateInstanceImpl(布尔publicOnly,布尔skipVisibilityChecks,布尔fillCache)+298 System.Activator.CreateInstance(类型类型,布尔非公共)+79 System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +121

[InvalidOperationException:尝试创建类型为“Support.Controllers.HomeController”的控制器时发生错误。确保控制器有一个无参数的公共构造函数。] System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +839 System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +66 System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& 控制器, IControllerFactory& 工厂) +194 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback 回调, 对象状态) +86 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +392 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +263

知道为什么吗?

顺便说一句,“消费者”是一个 dbml 文件

谢谢

【问题讨论】:

  • 您认为究竟是什么“指向”了开发服务器?
  • 我不明白为什么有些文件指向 C:_work\

标签: asp.net-mvc deployment


【解决方案1】:

堆栈跟踪中的文件路径来自 pdb 文件,并且基于编译时的文件路径。它们并不一定意味着正在运行的程序集正在那里寻找代码。

将这些路径视为在您的开发机器上进行调试的辅助工具。

我怀疑您的模型设计器中的空引用实际上是由于实时数据库和开发数据库上的不同模式存在问题。或者来自代码假定始终存在的缺失数据。

【讨论】:

  • 感谢您的回答,马特。 DB和我备份后在live server中恢复的一模一样。
  • 好的,我刚刚重新创建了模型,现在一切正常。仍然不确定问题是什么。
  • 假设您正在使用版本控制,比较模型(重新创建之前和之后)以查看发生了什么变化。附言不要忘记接受和支持有用的答案;)
猜你喜欢
  • 1970-01-01
  • 2015-04-01
  • 2018-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-17
相关资源
最近更新 更多