c#windows服务

我有一个正在运行的Windows服务。 我想从windows服务 监控ac#console应用程序 。 我的c#控制台应用程序在控制台中读取和写入和,乘法。 我想使用我的Windows服务打开并使用我的控制台应用程序 。 我应该在OnStart()方法中编写什么才能正确执行我的c#代码。 我确实从我的控制台应用程序代码中输入了exe文件(Process.start()),但我有错误: 控制台应用程序停止工作 。 为什么? 请帮我:)。 我知道Windows服务不适用于GUI应用程序 。 但我只是想从我的Windows服务打开另一个应用程序(我的exe包含我的控制台应用程序)。 谢谢 有人可以给我一些有用的eq吗?:)。 谢谢

用于.NET的Autoupdater和wyBuild / wyUpdate的替代品?

我正在寻找自动更新软件的替代方案。 不是ClickOnce ,也不是wyBuild和wyUpdate的行。

Simple Injector在BaseClass中注入多个依赖项

我有一个BaseViewModel ,它由多个ViewModel类inheritance。 在我的BaseViewModel我有一些从ViewModel注入的依赖项。 现在,如果我需要在BaseViewModel添加新的依赖项,我需要更改inheritanceBaseViewModel所有VM。 请告诉我如何在Simple Injector中处理它。 以下是我的代码结构: 如何使我的基类注入独立,以便我不需要在所有inheritance的类中进行更改? 码: public class BaseViewModel { protected readonly IAESEnDecrypt AESEnDecrypt; protected readonly IDataService DataService; protected readonly INavigationService NavigateToPage; public BaseViewModel(INavigationService nav, IDataService data, IAESEnDecrypt encrypt) { AESEnDecrypt= encrypt; NavigateToPage = nav; DataService = data; } } public class ViewModel { public ViewModel(INavigationService nav, IDataService data, IAESEnDecrypt encrypt) : […]

ASP.NET – 常见问题

当我使用ASP.NET时,我发现总是会遇到意想不到的事情,需要永远调试。 我认为拥有这些的综合列表对于那些“奇怪的错误”情况来说是很好的,加上我们对平台中的奇怪性的了解。 所以:用你的一个“Gotcha”来回答! 我将开始:在ASP.NET(VB)下,在try / catch块中执行Response.Redirect不会停止当前Response的执行,这可能导致针对同一Session执行两个并发响应。

是否有Cruise Control .NET的API?

我可以使用Cruise Control .NET(ccnet)查询服务器的API,例如获取各种构建的状态吗? 我注意到ccnet托盘应用程序中有一些选项可用于连接,但我找不到服务API的任何文档或如何使用它的示例。

C#事件处理(与Java相比)

我目前正在使用delagates在C#中很难理解和实现事件。 我习惯了Java的做事方式: 为侦听器类型定义一个接口,该接口包含许多方法定义 如果我对侦听器中定义的所有事件不感兴趣,请为该接口定义适配器类以使事情更容易 在类中定义Add,Remove和Get []方法以引发事件 定义受保护的fire方法,以便在添加的侦听器列表中循环并调用正确的方法 这个我理解(并且喜欢!) – 我知道我可以在c#中完全相同,但似乎有一个新的(更好的?)系统用于c#。 阅读了无数的教程,解释了c#中代表和事件的使用后,我仍然无法真正了解正在发生的事情:S 简而言之,对于以下方法,我将如何在c#中实现事件系统: void computerStarted(Computer computer); void computerStopped(Computer computer); void computerReset(Computer computer); void computerError(Computer computer, Exception error); ^上面的方法取自我曾经制作的Java应用程序,我正在尝试移植到c#。 非常感谢!

确定MAC上传流文件的MIME类型

我有一个简单的Web表单,通过.NET C#发送和发送电子邮件。 另外还有一个ASP UPLOAD ctrl,我从中创建一个内存流并将流附加到邮件消息…即不需要将文件保存到文件系统。 问题:当MAC用户不对其上传的文件进行扩展时(我正在测试PostedFile.ContentType以确定文件和/或适当的扩展名,允许的文件RTF,TXT,PDF,DOC,DOCX),看起来ContentType又回来了“application / octet”……这对我来说没有PC的要求,但对我来说是有意义的; 仍然不清楚天气读取ContentType或扩展是一种更好的方法来确定我附加之前它是什么类型的文件。 [无扩展MAC文件显然会失败任何扩展测试] 基本上,我从上传ctrl中读取文件,确定它的ContentType是什么,只删除PostedFile.Filename,然后在我使用switch语句中的ContentType字符串创建附件时重新组合,以确定并向附加文件添加正确的扩展名(filename + ext)。 我这样做是为了确保不使用扩展的MAC用户仍然无需上传创建.ZIP或其他包。 问题1:关于解决这个问题,最佳做法,我的逻辑是否正确? 问题2:当不在MAC上使用扩展时,所有MAC文件是否将返回为“application / octect”,如果是,那么有人如何确定它实际上是什么类型的文件? (注意:在MAC平台上不使用扩展时,PDF工作正常)。 提前致谢。 如果需要代码示例请告知。

在C#中连接Lambda函数

使用C#3.5我想构建一个谓词,逐个发送到where子句。 我创建了一个非常简单的控制台应用程序来说明我到达的解决方案。 这非常有效。 绝对完美。 但我不知道如何或为什么。 public static Func GetPredicate() { Func predicate = null; predicate += t => t.Response == “00”; predicate += t => t.Amount < 100; return predicate; } 当我说’谓词+ =’时,这是什么意思? 谓词 – =似乎什么都不做,编译器不喜欢^ =,&=,* =,/ =。 编译器不喜欢’predicate = predicate + t => t.Response ….’。 我偶然发现了什么? 我知道它的作用,但它是如何做到的? 如果有人想深入研究更复杂的lambda,请这样做。

LINQ条件Where子句不起作用

使用:MVC 5,C#,VS 2013,EF6和CodeFirst,SQL Server 2012 我已经尝试了四种不同的方式来获取数据而没有任何问题。 IQueryable qryResults = _db.vw_Results; 我遇到的问题是我有13个filter选项,所有13个的代码遵循相同的逻辑: string fmVal = string.Empty; if (!string.IsNullOrEmpty(form[“Locations”])) { fmVal = form[“Locations”].ToString(); qryResults = qryResults.Where(w => w.LOCATION.CompareTo(fmVal) == 0); } if (!string.IsNullOrEmpty(form[“ddActionLevels”])) { //qryResults = qryResults.Where(w => w.PAL_ID==form[“ddActionLevels”].ToString()); vbVal = form[“ddActionLevels”].ToString(); ; //qryResults = qryResults.Where(w => w.AL == vbVal); qryResults.Where(w => w.AL.CompareTo(vbVal) >= 0); } if […]

如何在C#中解析(转换为RSAParameters)X.509私钥?

我正在使用加密通道来加密两个设备之间的通信。 所以我正在创建一个辅助类来进行加密和解密。 我已经google了很多,发现了一段可以将RSA公钥解析为RSACryptoServiceProvider的代码。 这是代码: public static RSACryptoServiceProvider DecodeX509PublicKey(byte[] x509key) { byte[] SeqOID = { 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00 }; byte[] seq = new byte[15]; MemoryStream mem = new MemoryStream(x509key); BinaryReader binr = new BinaryReader(mem); byte bt = 0; ushort twobytes = 0; try { […]