我在.Net 2.0(C#)中创建了一个控制台应用程序,并希望创建一个将应用程序安装为Windows服务的安装程序.
我之前从未创建过安装程序,但我正在阅读有关该主题的一些文章.非常感谢那些在这方面有一定经验的建议或链接.
谢谢.
更新:我目前正在查看http://justinjmoses.wordpress.com/2008/03/27/visual-studio-2008-standard-vs-professional/,以解决Windows服务应用程序模板未包含在VS 2008标准.
Russ Taylor还有一个默认的Windows服务项目可从http://russtaylor.co.uk/2009/01/writing-a-windows-service-in-visual-studio-2008-standard/下载.
我有一个库来处理读取和写入缓存文件.Windows服务和同一台计算机上的控制台应用程序的多个实例使用此库.控制台应用程序在用户登录时运行.
我偶尔会遇到IO错误,说缓存文件正由另一个进程使用.我假设在不同的应用程序实例和尝试同时读写的服务之间发生冲突.
有没有办法在文件使用时锁定文件并强制所有其他请求"排队等待"访问文件?
private void SaveCacheToDisk(WindowsUser user) {
string serializedCache = SerializeCache(_cache);
//encryt
serializedCache = AES.Encrypt(serializedCache);
string path = user == null ? ApplicationHelper.CacheDiskPath() :
_registry.GetCachePath(user);
string appdata = user == null ? ApplicationHelper.ClientApplicationDataFolder() :
_registry.GetApplicationDataPath(user);
if (Directory.Exists(appdata) == false) {
Directory.CreateDirectory(appdata);
}
if (File.Exists(path) == false) {
using (FileStream stream = File.Create(path)) { }
}
using (FileStream stream = File.Open(path, FileMode.Truncate)) {
using (StreamWriter writer = new StreamWriter(stream)) {
writer.Write(serializedCache);
}
}
}
private string ReadCacheFromDisk(WindowsUser user) {
//cache …Run Code Online (Sandbox Code Playgroud) 我必须编写一个本质上是代理服务器的应用程序来处理来自我们服务器的所有HTTP和HTTPS请求(Web浏览等).我对C++知之甚少,并且很乐意在C#中编写应用程序功能.
我已经尝试使用Mentalis的代理(C#套接字代理),它似乎适用于小型网页,但是如果我去像tigerdirect.ca这样的大型网站并浏览几层,那么它很慢,有时请求无法完成我看到破碎的图像和javascript错误.所有供应商站点和其他内容繁重的站点都会发生这种情况.
Mentalis使用HTTP 1.0,我知道它不是那么有效但是代理应该那么慢吗?使用代理可以承受的性能损失是多少?HTTP 1.1会有明显的区别吗?
C++代理会比C#中的代理快得多吗?Mentalis代码效率不高吗?我是否能够使用预制的C++代理并将DLL导入C#并仍然获得良好的性能,或者该项目是否会调用所有C++?
很抱歉,如果这些是明显的问题,但我之前没有做过网络编程.
编辑回应约书亚的问题:我不一定需要自己编写核心代理服务器,只要有一个很好的实现,但就像我说我一直在试验那些表现不佳的Mentalis.最终的应用程序需要从单个安装程序安装在Windows PC/Server上,手动配置为0.
我可以在安装程序中编写所有必要的注册表编辑,就像我之前在C#中所做的那样.
更新我接受了Aaronaught的建议,并研究改进Mentalis的代码.我修复了一个问题,因此它适用于HTTP 1.1,允许它与Chrome和Firefox一起使用(Windows上的Safari 4因某些原因导致代理崩溃).
当我在FireFox和Chrome中测试时,我发现性能问题并不存在,这意味着IE问题不是代理问题.重置浏览历史记录设置后问题就消失了.
感谢大家!