2010-03-09 43 views
0

我在本地机器上构建了一个Windows服务。当我在本地安装并运行它时,它工作得很好。当我尝试将其移动到我的生产机器时,我收到一个空引用异常错误。Windows服务空引用异常

我创建了一个安装包,在我的机器上也能正常工作,但是当我在生产机器上运行它时,服务仍然失败。

该服务引用了一个.dll文件,该文件依次引用了另外3个dll文件。当我构建项目时,它将所有的DLL拖入项目的调试文件夹中......我甚至已经从该文件夹安装了该服务,并且它在我的机器上运行了localy。

我知道这必须与参考文献有关,但这超出了我。任何提示/提示将不胜感激。

+5

真的,这不需要与参考文献有关。你确定你没有硬编码(比如说)服务器上不存在的文件夹路径吗?或者其他资源? 发布堆栈跟踪将有所帮助。 – 2010-03-09 13:18:17

+0

多数民众赞成在!我意识到,你说过我是从一个Web应用程序本身的类继承的...它从它的相对位置在WEB应用程序中拉取一个XML配置文件!/facepalm – Patrick 2010-03-09 13:25:04

+0

Web应用程序使用的xml解析器也用于我的服务中,以便从Web应用程序结构中的配置文件获取数据库连接字符串......它在try catch中,因此如果它无法从在Web应用程序中的相对位置,它将转到公司旧服务器的绝对位置C:\ ...在此服务器上,所有Web应用程序都存储在E:\ ...我将c更改为e在绝对参考和噗...它的作品。 – Patrick 2010-03-09 13:34:48

回答

0

如果你看看评论,你会看到问题是什么。

0

确保您正在安装它的计算机具有相同的计算机具有相同的.dll您的期望安装。例如,如果您使用的是.NET,并且在3.5中编写了该服务,并且目标计算机只有2.0,可能会造成问题,特别是如果安装程序未尝试安装它。

+0

我确信,作为安装3.0的服务的依靠之一......这个服务器也将容纳4 - 5个其他web应用程序,这些应用程序使用2 - 3.5版本编写。 – Patrick 2010-03-09 13:40:27