最近在开发项目时,要做Email发送,本来可以直接在开发过程中写方法来发送邮件,但在看了Vince Varallo的商用开发架构精解后,觉得确实把Email发送做成一个服务是比较不错的做法;
一:在visual studio 2010中开发一个Email的windows服务
1、新建项目
2、创建了一个新的Windows Service项目,其中包含一个名为Service1的类,在Visual Studio 2010中会显示用于Service1类的设计器
3、单击此处切换到代码视图
4、当服务启动时,就会触发Onstart方法,当服务停止时,则触发OnStop方法在这两个方法中就可以完成自己的逻辑内容
5、由于我们可能开发环境和服务器的环境不同(服务器是x64而开发环境是x86),所以在此要注意将目标平台选择为AnyCPU
6、在逻辑代码完成过程中或是发布过程中,可能会出现windows服务项目中引用了其他项目,会发现明明引用了其他项目的dll,结果在代码中无论如何也不能使用;并触发警告,具体原因为:在VS2010 中,你默认建立的Windows Service程序就是.Net Framework X Client Profile,而不是.Net Framework X;.Net Framework X Client Profile是.Net Framework X的裁剪版本,是会缺少一些必要dll引用;
7、解决上面的问题,要将默认的.NET FrameworkX Client Profile改为.NET FrameworkX
8、Windows Service项目必须添加一个安装程序才能使用,所以我们要添加安装程序,回到Service1类的设计器页面,在设计器灰色的背景上右击,选择添加安装程序,这将创建一个名为ProjectInstaller.cs的文件并在设计器中打开该文件。
一:在visual studio 2010中开发一个Email的windows服务
1、新建项目
2、创建了一个新的Windows Service项目,其中包含一个名为Service1的类,在Visual Studio 2010中会显示用于Service1类的设计器
3、单击此处切换到代码视图
4、当服务启动时,就会触发Onstart方法,当服务停止时,则触发OnStop方法在这两个方法中就可以完成自己的逻辑内容
5、由于我们可能开发环境和服务器的环境不同(服务器是x64而开发环境是x86),所以在此要注意将目标平台选择为AnyCPU
6、在逻辑代码完成过程中或是发布过程中,可能会出现windows服务项目中引用了其他项目,会发现明明引用了其他项目的dll,结果在代码中无论如何也不能使用;并触发警告,具体原因为:在VS2010 中,你默认建立的Windows Service程序就是.Net Framework X Client Profile,而不是.Net Framework X;.Net Framework X Client Profile是.Net Framework X的裁剪版本,是会缺少一些必要dll引用;
7、解决上面的问题,要将默认的.NET FrameworkX Client Profile改为.NET FrameworkX
8、Windows Service项目必须添加一个安装程序才能使用,所以我们要添加安装程序,回到Service1类的设计器页面,在设计器灰色的背景上右击,选择添加安装程序,这将创建一个名为ProjectInstaller.cs的文件并在设计器中打开该文件。
9、接下来在做一些相关的设置,我们开发windows服务就完成了(以下截图为安装器各个属性说明):