从本地PC迁移到服务器

时间:2016-07-04 12:20:17

标签: .net dll windows-services windows2012 programdata

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

我在一个项目中有两个主要的DLL,它们包含所有主要的功能代码。

Service VS Project附带了这些内容,它还包含一个Windows窗体项目,它位于桌面托盘中并为我提供服务状态,因为它使用第三方API,无论API是否正常运行,任何当前错误,加上它有按钮,如果需要,我可以停止/启动服务。

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

1)服务器上没有Visual Studio,因此我没有放置项目的目录,重建它们并运行它们,让其他应用程序挂钩到DLL中,我必须使用“添加引用”等。< / p>

我应该将VS Web Edition或其他东西下载到服务器,以便在需要时更容易管理/调试/编码吗?

或者是否有另一种方式,例如只是复制DLL并注册它们然后将服务/应用程序复制到服务器,它会自动引用它,如果不是什么程序。

主要代码在我构建的DLL中,它还附带了一个JSON第三方API构建的DLL。

当我重建主项目时,这些都会重新创建,然后我必须删除它们并将它们重新添加到服务和win表单项目中,然后重建它们才能使它们正确运行。

如果没有服务器上的VS,我该怎么做呢? - 我可以将代码的调试/制作保存到我的电脑上,只是复制文件吗? - 尽管路径不同,从服务/应用程序到DLLS的链接仍然可以工作吗? - 如果不是我该怎么办? - 哪里是存储它们的最佳文件夹?

另外我注意到尽管我对服务器(RD / SFTP / Win Share)具有admin / root访问权限,但我在C:\驱动器上看不到c:\ ProgramData文件夹。这是我的应用程序在24小时全天候运行的所有日志记录在我的PC上运行的时候。它每天创建一个日志文件,2个历史记录 - 所有这些都用于后期处理调试等。

这是因为它是一个Win 2012服务器和我用来获取项目路径的代码

this.Logpath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\" + NameOfMyApp;

工作方式不同,例如Environment.SpecialFolder.CommonApplicationData是Win 2012上的另一个文件夹,或者我是否需要做一些事情来显示ProgramData文件夹以便我可以正常浏览它?

我记得最近当我在Win7机器上安装了一个Windows Update时(显然与Win7很常见)并且我看不到ProgramData文件夹(服务仍在运行) - 直到我的配置文件被换掉(它使用默认的临时配置文件,这就是为什么我的所有桌面图标都与书签和文件夹一起使用)。

所以我试图将这两个VS项目(或他们创建的工作代码)从我的Win7 64位机器移动到Win 2012 64位服务器。

在服务器上没有Visual Studio的情况下,为了让所有工作和文件夹全部显示(programdata)以及服务启动和运行,最佳步骤是什么?

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

1 个答案:

答案 0 :(得分:0)

首先,您无需在服务器上安装Visual Studio即可运行该服务。如果您为应用程序创建安装程序,您将能够确保所有依赖项(包括解决方案和外部依赖项)都与您的应用程序一起安装。有许多程序/插件可以创建安装程序。

其次,更改您的应用程序,以便它使用非系统文件夹来写日志等。这样您就可以在任何地方安装它,而无需进行大量检查以查看您正在安装的操作系统。还有代码来检查这些文件夹是否存在,如果它们不存在则创建它们。

第三,您可以获取代码来创建事件日志(如果它不存在) - 尽管这需要管理员级别访问权限,因此安装程序最好这样做,以便您可以在用户帐户下运行服务。 / p>