2016-07-04 196 views
0

我已经在当前本地PC上运行(赢& 64位).NET(C#C)建立了一个Windows服务应用程序,它有它自己的事件日志文件,以及一对于后调试其注销到c自定义日志文件:\ ProgramData \ MyAppName \从本地PC迁移到服务器

我在其中包含所有主要的功能代码一个项目的主2倍的DLL。

这些被服务VS项目挂钩,其中还包含一个Windows Form项目,该项目位于桌面托盘中,并为我提供服务状态,因为它使用第三方API,API是否已启动并正在运行,任何当前的错误,再加上它有按钮,使我可以在需要时停止/启动服务。

但是我不得不将这一切都转移到Windows 2012 Server,并且我需要解决一些问题。

1)服务器上没有Visual Studio,因此没有用于放置项目的目录,重建它们并运行它们,让其他应用程序挂接到与“添加参考”相关的DLL中。

我应该下载VS网络版或东西到服务器,以使这更易于管理/调试/代码,如果我需要?

或者是有另一种方式,例如只复制DLL和REGSRVR他们安装然后复制服务/应用程序到服务器,它会自动引用它的工作,如果不是什么程序。

主要代码是在我建立的DLL中,它也带有一个JSON第三方API生成的DLL。

这些都得到重新创建,当我重建主体工程,然后我必须删除并把它们改造他们,以便正常运行,然后再重新添加到服务和赢形式的项目。

如何在没有服务器上的VS的情况下解决此问题 - 我可以将代码的调试/制作保存到我的电脑上,只需复制文件? - 即使路径不同,从服务/应用程序到DLLS的链接是否仍然有效? - 如果不是,我该怎么办? - 也是最好的文件夹来存储它们?

此外,我注意到,尽管有服务器(RD/SFTP /运股份)管理员/ root访问我,我不能看到C:\ ProgramData文件夹上的C:\驱动器。这是我的应用程序在全天候运行时从我的PC上运行的所有日志记录。它每天创建一个日志文件,2个历史 - 全部为后处理调试等

这是因为这是一个双赢2012服务器和代码,我用得到它

this.Logpath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\" + NameOfMyApp; 
在我的项目的路径

的工作方式不同,例如Environment.SpecialFolder.CommonApplicationData是Win 2012上的另一个文件夹,还是我需要执行某些操作才能显示ProgramData文件夹,以便我可以正常浏览它?

我记得最近当我在我的Win7机器上做了一些Windows更新(显然与Win7很常见),我看不到ProgramData文件夹(服务仍在运行) - 直到我的配置文件被交换它正在使用默认的临时配置文件,这就是为什么我所有的桌面图标都带有书签和文件夹的原因)。

所以我想从我的Win7 64位机这2个VS项目(或他们所创造的工作代码)转移到一个双赢2012 64位服务器。

什么都拿得到一切工作的最佳步骤和文件夹的所有显示(programdata),再加上服务正常运行,而无需在服务器上的Visual Studio?

感谢您提前提供任何帮助。

回答

0

首先,你不需要安装Visual Studio在服务器上运行的服务。如果为应用程序创建安装程序,则可以确保所有依赖项(解决方案和外部应用程序中的依赖项)都随应用程序一起安装。有一些创建安装程序的程序/插件。

其次,改变你的应用程序,以便它使用非系统文件夹的写日志等,这样就可以安装在任何地方,而无需有很多检查,看看你正在安装什么操作系统。也有代码来检查这些文件夹的存在,并创建它们,如果它们不存在。

第三,如果事件日志不存在,您可以让您的代码创建事件日志 - 尽管这需要管理员级别的访问权限,所以最好由安装程序完成,以便您可以在用户帐户下运行您的服务。

+0

那么它使用环境变量来得到它应该创建文件夹的路径(并创建如果不存在 - 同与事件日志) - 但我只是想为了安全,他们已停止的应用程序存储文件都在OS和为了确切的目的创建了ProgramData文件夹。问题是,有2个项目1我的DLL包含所有包含JSON DLL的代码,然后在Service和Windows Form应用程序中引用这2个DLLS的另一个项目,如何在两个项目中创建安装程序? – MonkeyMagix

相关问题