Articles of .net

我可以在Windows上加载一个32位DLL到64位进程吗?

我最近升级了ac#windows服务作为64位.net进程运行。 通常情况下,这将是微不足道的,但系统使用C ++编写的32位DLL。 这不是一个select将此DLL转换为64位,所以我将DLL包装在一个单独的32位.net进程,并通过远程处理暴露.net接口。 这是一个相当可靠的解决scheme,但是我宁愿将系统作为单个进程运行。 有什么办法可以加载我的32位DLL到64位进程,并直接访问它(也许通过某种thunking层)?

Ruby可以导入一个.NET DLL吗?

我有兴趣在一个项目中使用/学习RoR,我必须使用.NET DLL。 Ruby能够导入.NET DLL吗?

如何监视应用程序是否被打开?

我正在实施一个桌面分析应用程序,需要logging用户在PC上打开的程序的名称和时间。 这是一个C#(WPF)应用程序,它在用户login并在没有UI的情况下运行时启动。 对于诸如Word或IE之类的程序,它也将捕获他们正在查看的文档或Url。 目前我有一个工作解决scheme如下: 安装一个Windows挂钩的鼠标closures。 当事件触发时,我使用p-Invoke到“GetForegroundWindow”,然后使用窗口句柄“GetWindowThreadProcessId”,使用ProcessId我可以得到包含名称,开始时间和参数启动列表的System.Diagnostics.Process对象。 我维护一个历史列表,所以我只写一个跟踪条目,如果这个processId /窗口句柄组合没有被logging过。 这个解决scheme确实工作正常,但需要鼠标挂钩,可以通过Windows下降没有任何通知或能力来检查是否仍然挂钩。 更何况这个实现看起来像一个黑客。 如果有更好的更直接的方法,请告知。 谢谢。

与Windows命名pipe道(.Net)的asynchronous双向通信

我有一个Windows服务和一个graphics用户界面需要相互沟通。 可以随时发送消息。 我正在看使用NamedPipes,但似乎你不能同时读取和写入stream(或者至less我找不到任何涵盖这种情况的例子)。 是否有可能通过单个NamedPipe进行这种双向通信? 或者我需要打开两个pipe道(一个来自GUI->服务,另一个来自服务 – > GUI)?

可靠地检测到我的另一个应用程序正在运行

我有两个应用程序,一个WinForms应用程序和一个Windows服务,将在同一台机器上运行。 我希望WinForms应用程序能够可靠地检测服务何时运行。 我完全控制这两个应用程序的devise和实现。 我的第一个想法是使用一个互斥体 ,由服务实例化和WinForms应用程序可检测。 有更好的devise吗?

WCF Windows服务超时

我有一个客户端应用程序开发.net seding一个请求wcf服务,应该发送响应。如果执行时间在1分钟,没有错误,如果超过1分钟的错误是 内部exception:发送到net.tcp:// localhost:18001 / PitToPort / 2008/01/30 / StockpileService / tcp的请求操作未在configuration的超时(00:01:00)内收到回复。 分配给此操作的时间可能是更长时间的一部分。 这可能是因为该服务仍在处理该操作或由于该服务无法发送回复消息。 请考虑增加操作超时(通过将通道/代理强制转换为IContextChannel并设置OperationTimeout属性),并确保服务能够连接到客户端 如何增加超时和如何? 什么是最好的解决scheme?

用于.NET的可编程RAM磁盘API?

寻找一个RAM磁盘API(或实现的一组等同的软件)来临时存储文件以便在物理硬盘环境之外进行读/写操作。 更新 exe文件将被写入RAM磁盘并执行。

如何在.net中为Windows服务设置ACL?

我有一个服务,我需要能够启动和停止一个button。 我在一个单独的程序中使用一个ServiceController,当我以pipe理员身份运行这个单独的程序时,一切都按预期工作。 不过,我需要能够像任何人一样控制这项服务。 我如何设置我的服务的权限,以便每个人都可以完全控制它? 这需要以编程方式作为服务的一部分或安装。 这是一个用vb.net写的本地服务。

通缉:不受AbandonedMutexException影响的跨进程同步

我有几个线程获取互斥体,然后终止。 互斥体存储在主存储库中,并在程序存在时正确释放。 但是,当分配一个互斥体的线程存在时,互斥体会自动释放,并随后获取AbandonedMutexException(也根据文档 )。 我怎样才能避免这种exception,即使分配线程完成后仍继续使用互斥锁? .Net中是否有另一个更合适的同步构造,没有这个限制。 注 – 我正在寻找一个跨进程同步机制,它具有与Mutex类似的语义。

无法find模块“mscorwks.dll”

我尝试使用winDBG来debugging转储文件。 当我运行.loadby sos mscorwks.dll 它给了我一个错误消息。 无法find模块“mscorwks.dll” 有没有人见过这个?