我正在尝试构建几个Windows服务来做不同的事情.例如,我需要Windows服务,它将:
我需要Windows服务的任务是不同的,所以我不喜欢将它们全部集中在一个服务中的想法.
到目前为止我所拥有的是Visual Studio 2008中的一个项目.我已经创建了一个Windows服务,我在OnStart事件上设置了一个计时器(它只是为了测试目的每5秒写一个文本文件).然后我向项目添加了一个安装程序,当我运行InstallUtil.exe时,一切正常.
当我向同一个项目添加第二个Windows服务时,问题就出现了.我再次设置OnStart代码,使用相同的日志信息(略有不同,以便我可以判断哪个服务正在写入日志).使用第二个Windows服务,我在Program.cs中更改了Main事件:
static void Main(string[] args)
{
ServiceBase[] ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
}
Run Code Online (Sandbox Code Playgroud)
至:
static void Main(string[] args)
{
ServiceBase[] ServicesToRun = new ServiceBase[]
{
new Service1(),
new Service2()
};
ServiceBase.Run(ServicesToRun);
}
Run Code Online (Sandbox Code Playgroud)
此时,没有编译时错误,但Service2服务从不做任何事情......日志记录任务永远不会触发.
我把它缩小到第二个服务没有与之关联的"安装程序"的事实.然后,我尝试按照第一项服务的方式添加安装程序(即,右键单击服务设计器,然后单击"添加安装程序").现在,当我转到ProjectInstaller.cs文件时,那里有另一个serviceInstaller(serviceInstaller2).
现在当我构建项目并尝试安装服务时,我转到"服务"控制面板窗口,我尝试启动Service1,收到以下错误消息:
Windows无法在本地计算机上启动Service1服务.
错误1083:此服务配置为运行的可执行程序未实现该服务.
如果我尝试启动Service2,则会收到相同的错误消息(当然,错误消息标识Service2除外).
为了从一个exe运行两个服务,我有什么遗漏吗?
实际上我对这些术语以及它们如何相互关联感到非常困惑.阅读关于他们每个人的事情,但我不了解工作流程..
DTO - 数据传输对象 - 传输值的
对象BO业务对象 - 域模型中的对象.使用
POCO 创建业务逻辑的对象- 不知道,我已经阅读了维基上的定义,但没有理解任何东西
DAO - 数据访问对象 - 映射数据库表的对象?
请有人请为我带些光吗?
我试图通过PHP将一些数据存储在SQL Server数据库中.
问题是特殊字符未正确转换.我的app的charset是iso-8859-1,服务器使用的是windows-1252.
在插入之前手动转换数据没有帮助,似乎有一些转换正在进行.
运行SQL查询'set char_convert off'也无济于事.
任何人都知道如何让这个工作?
编辑:我试过ini_set('mssql.charset','windows-1252'); 同样,但也没有结果.
我将创建一个将使用字典查找和插入相当多的项目.这是值得关注的吗?
此外,如果我进行基准测试等并且它确实很糟糕,那么用其他东西替换字典的最佳方法是什么?使用带有"散列"键的数组会更快吗?那会对插入时间有所帮助吗?
另外,我认为我不是微优化,因为这确实是生产服务器上代码的重要组成部分,因此如果需要额外100毫秒才能完成,那么我们将寻找新的方法来处理这个问题.
我有一个用C#编写的Windows服务,它处理自助服务终端应用程序的所有外部硬件I/O. 我们的新设备之一是USB设备,它在本机DLL中附带API.我创建了一个正确的P/Invoke包装类.但是,必须使用HWnd将此API初始化为Windows应用程序,因为它使用消息泵来引发异步事件.
除了向硬件制造商请求我们提供不依赖于Windows消息泵的API之外,有没有办法在我的Windows服务中的新线程中手动实例化消息泵,我可以将其传递给此API ?我是否真的必须创建一个完整的Application类,或者是否有一个封装消息泵的低级.NET类?
最近我决定看看Java,所以我还是很新的,也是OO编程的方法,所以我想在学习更多东西之前先做一些事情,(我想它永远不会很快从良好实践开始) ).
我现在正在编写一个2D游戏,但我认为我的问题适用于任何非平凡的项目.为了简单起见,我将从我的游戏中提供示例.
我有不同种类的僵尸,但它们都有相同的属性(x,y,健康,攻击等)所以我写了一个界面 Zombie,我实现了WalkingZombie,RunningZombie TeleportingZombie等.这是最好的事情吗?我最好用抽象课吗?还是超级?(我不打算部分实现函数 - 因此我选择了一个接口而不是一个抽象类)
我有一个类描述主角(Survivor),因为它非常大,我想用不同的函数编写一个接口,这样我就可以轻松地看到并分享它的结构.这是好习惯吗?还是只是浪费空间和时间?
我希望这个问题不会被评为主观,因为我认为有经验的程序员不会对这种话题产生不同意见,因为接口/超类/抽象类的使用遵循逻辑规则,因此不仅仅是个人选择.
我想知道为什么我的asp.net应用程序在命名为"授权"时不会将标题添加到我的帖子中,但是当我更改一个字符时,它会正常工作,比如说"授权".在其他网站的文档中,他们总是使用"授权"这个名称,所以我也想,在这一点上,我只是想知道为什么.
我已经阅读了一些关于此的主题,但没有找到任何合理的原因.
这是我的代码如下:
string fileName = "c:\\xyz.xml";
string uri = "http://myserver/Default.aspx";
req = WebRequest.Create(uri);
req.Method = "POST";
req.ContentType = "text/xml";
byte[] authBytes = Encoding.UTF8.GetBytes("DDSServices:jCole2011".ToCharArray());
req.Headers.Add("Authorization", "BASIC " + Convert.ToBase64String(authBytes) );
req.Headers.Add("test", "test");
UTF8Encoding encoder = new UTF8Encoding();
byte[] data = encoder.GetBytes(this.GetTextFromXMLFile(fileName));
req.ContentLength = data.Length;
Stream reqStream = req.GetRequestStream();
reqStream.Write(data, 0, data.Length);
reqStream.Close();
req.Headers.Add("Authorization", "BASIC" + Convert.ToBase64String(authBytes));
System.Net.WebResponse response = req.GetResponse();
System.IO.StreamReader reader = new StreamReader(response.GetResponseStream());
string str = reader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
另一个令人讨厌的是当我通过fiddler添加监视变量时,它工作正常.
我在Win7上使用MySQL 5.5.16 noinstall Zip Archive.
启动服务器后,该命令show databases显示了一个包含2个数据库的列表:information_schema和test.后者是空的.
桌子在哪里user?
我试图通过此命令创建一个新用户create user newUser;并收到以下错误消息:ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation
我该怎么做才能创建,数据库,表格,并做我想做的所有操作?我不知道我使用的事实MySQL 5.5.16 noinstall Zip Archive是否与错误消息有关?
我的问题:
我有一个.NET应用程序,通过电子邮件发送新闻稿.在Outlook中查看简报时,outlook会显示一个问号,代替无法识别的隐藏字符.这些隐藏的角色来自最终用户,他们将构成简报的html复制并粘贴到表单中并提交.如果c#trim()出现在字符串的结尾或开头,则会删除这些隐藏的字符.在gmail中查看简报时,gmail会忽略它们.当粘贴word文档中的这些隐藏字符并打开"显示段落标记和隐藏符号"选项时,符号在较大的矩形内显示为一个矩形.组成简报的文本也可以是任何语言,因此接受Unicode字符是必须的.我已经尝试循环遍历字符串以检测字符,但循环不识别它并通过它.还要求最终用户在提交之前先将html粘贴到记事本中是不可能的.
我的问题:
如何使用C#检测并消除这些隐藏的字符?
可能有一些方法可以打开和关闭代码分析?
或者您可以选择要分析的特定功能吗?
c# ×5
.net ×2
architecture ×1
arrays ×1
asp.net ×1
database ×1
dictionary ×1
interface ×1
java ×1
message-pump ×1
mysql ×1
optimization ×1
php ×1
profiler ×1
profiling ×1
service ×1
sql-server ×1
string ×1
superclass ×1
windows ×1