.net - 当我部署到我的服务器时,HttpContext.Current.Server 引发了 System.NullReferenceException 类型的异常
问题描述
由于某种原因,在将在 localhost 上完美运行的相同代码部署到我的服务器后,此行失败:
private static string nodePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["NodeJS.Path"]);
原始异常是System.TypeInitializationException
:“Turcos.App.Components.AsyncFileExporter”的类型初始化程序引发了异常。但是很明显,因为HttpContext.Current
为空,所以抛出了异常。
我知道HttpContext.Current
有时可能为空(https://stackoverflow.com/a/6861575/1519464)但为什么它在我的本地而不是服务器上工作?更奇怪的是,我以前在我的服务器上使用的代码正在使用HttpContext.Current
并且运行良好。有什么改变阻止了它的工作?
解决方案
好的,所以我终于找到了原因。部署后,我的相关类是通过 .net API 控制器调用的,因此似乎HttpContext.Current
尝试在此行中使用时:
private static string nodePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["NodeJS.Path"]);
,它没有初始化,所以它抛出了异常。
解决方案:部署后,我做的第一件事是加载 index.html,似乎它触发了所有静态属性的正确初始化,因为问题停止发生。归根结底,这是一个棘手的初始化/生命周期问题
推荐阅读
- java - 在 ReactiveCrudRepository 上自动装配,使用 SpringBoot 的通用基础服务
- javascript - Angular 7 中的 HTTP GET 请求返回错误(状态 200)
- java - 如何将获取的 JSON 数据与 Room Persistence 库集成
- java - Java 发送电子邮件无一例外
- python - Python - 正则表达式计数“他”和“她”
- javascript - 如何在网站上实施计数?
- javascript - 如何使用 html、css 和 javascript 创建新的临时图像?
- facebook-graph-api - Facebook graph api在某个帖子ID后获取帖子
- sql - 尝试创建一个计算工作日数(周一至周五)的函数
- reactjs - 参考问题和 useEffect 后调用自定义挂钩