制作Windows服务项目详细攻略

1、在windows服务下面获得根目录:
string assemblyFilePath = Assembly.GetExecutingAssembly().Location;
string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath);
assemblyDirPath就是根目录如: c:\abc
2、给Windows服务添加log4net日志控件的时候需要注的事项:
1、添加方式前期跟正常的windows form程序是一样的
2、不一样的是需要在Main里添加一段代码如下:
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
static void Main()
{
//下面这四行是要添加的
string assemblyFilePath = Assembly.GetExecutingAssembly().Location;
string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath);
string configFilePath = assemblyDirPath + "\\log4net.config";
log4net.Config.XmlConfigurator.Configure(new FileInfo(configFilePath));
}
3、添加和删除服务:
安装:
@echo 安装服务
set svc_file=%cd%\HIIS_EXP_DATA.exe
sc create WJX binpath= "%svc_file%" displayName= "WJX" depend= tcpip start= auto
net start WJX
@pause
@exit
//其中WJX是服务名
删除:
@echo 卸载服务
net stop WJX
sc delete WJX
@pause
@exit
4、这是最重要的一个攻略,因为windows服务不能在运行开发环境的时候调试,所以调试方法如下:
开发完并安装到服务里以后,点击VS的附加到进程,把进程管理器里的“显示所有进程”勾上,然后找到自己的那个程序名称******.exe,然后确定,就可以调试了

posted @   星星c#  阅读(484)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示