在本文中,我们将为您详细介绍.net–如何连接windows服务与系统托pipe应用程序的相关知识,并且为您解答关于net服务器的疑问,此外,我们还会提供一些关于.net–控制台应用程序在Window
在本文中,我们将为您详细介绍.net – 如何连接windows服务与系统托pipe应用程序的相关知识,并且为您解答关于net服务器的疑问,此外,我们还会提供一些关于.net – 控制台应用程序在Windows服务上的优点、.NET控制台应用程序作为Windows服务、api – Windows Phone应用程序中的捐赠、build立从Windows应用程序到Google App Engine应用程序的OAuth连接的有用信息。
本文目录一览:- .net – 如何连接windows服务与系统托pipe应用程序(net服务器)
- .net – 控制台应用程序在Windows服务上的优点
- .NET控制台应用程序作为Windows服务
- api – Windows Phone应用程序中的捐赠
- build立从Windows应用程序到Google App Engine应用程序的OAuth连接
.net – 如何连接windows服务与系统托pipe应用程序(net服务器)
我有一个Windows服务,定期做些事情。 在用户帐户上运行与Windows服务(通过.net远程处理)通信的systray应用程序(用C#编写),并向用户显示一个状态和一些选项。
一切正常,旁边的系统应用程序使用20-30MB的RAM! 它必须在terminal环境下工作,当50个用户login时,只有systray应用程序占用大于1GB的RAM! 我不必补充,这是错误的:)
是否有可能编写.net系统应用程序将会很小? (1-2MB最多?)或者我应该写在C / C ++? 那么,我应该使用Windows服务(使用C#编写)和系统托pipe应用程序之间进行什么样的通信?
如何处理NotifyIcon,发生超时(C#)后
所有者绘制文本框在WinForms中使用
C#Windows服务 – 多个定时器
延迟窗口注销(XP,Vista和7)
从networking共享中读取文件将其创build时间设置为最后写入时间
对Process.Start(URL)的适当响应; 失败?
在VB.net中实现这样的工具提示?
手动创build未绑定的数据网格
如何检查一个小文本文件中的特定string
我如何在PowerShell中引用UWP类
另一个考虑是.NET应用程序消耗的大量内存在共享(.NET)dll中,并且在多个实例运行时不会重复(除非操作系统使用随机化的dll加载地址)。
您还可以通过将装配安装到GAC并使用ngen它们进行预处理来减少JIT编译使用的内存。 同样,这将导致内存使用量减少, 除非操作系统随机化dll加载地址。
我已经添加了以下行代码(应用程序有时与GC.Collect()一起)
System.Diagnostics.Process.GetCurrentProcess().MaxWorkingSet = System.Diagnostics.Process.GetCurrentProcess().MinWorkingSet;
内存使用率下降到〜2MB(从15-25MB),使用后的一些对象(绘图菜单和图标)后,内存使用下降到〜540KB! 它增长一点点(如果我使用上下文菜单,大约2-3MB),但是它会回落到〜540KB)
所以,目标达到了:)
您所遇到的内存使用问题很可能是您的应用程序所特有的,而不是所有使用.NET构建的sys-tray应用程序。
您应该配置您的应用程序,以确定大内存使用情况发生的地方。
你的系统托盘应用程序可能有内存泄漏。 一个好的分析工具可以帮助你了解正在发生的事情。
所以,如果我决定在c / c ++中编写systray应用程序,我应该使用windows服务(用C#编写)和systray应用程序之间使用什么样的通信?
我们过去遇到类似的问题,我会和你分享我的解决方案。
.Net框架TCP / IP库可怜地表现不佳,像任何东西一样占用内存。
作为解决方案,我们选择了来自KODART的XF库,这是一个用于.Net@H_301_52@应用程序的开源高性能TCP / IP库@H_301_52@ 。 它在多个客户端连接上令人惊讶地缩放。
您可以使用XF库建立TCP / IP通道并自己观察结果。
结帐这篇文章了解更多信息。
WCF(.NET 3.0或3.5?)的发布使得.NET Remoting过时了。 使用WCF,您可以选择在Windows服务中托管WCF服务器,然后通过TCP / IP与您的服务进行通信。 根据我的经验,WCF远比.NET远程控制稳定。
根据您的需要,您可能需要考虑使用ServiceController而不是远程或WCF。 使用ServiceController您可以启动和停止服务,也可以使用Service.Controller.ExecuteCommand将应用程序定义的命令(以整数形式)发送到您的服务。 使用ServiceController比远程处理和WCF简单得多,但不够灵活。
如果您只需要在系统托盘中更改图标,更改工具提示并显示小的上下文菜单 ,则可以使用纯WinAPI在C / C ++中编写您的systray应用程序,并使用消息模式命名管道与服务进行通信。 不要忘记使用Global管道名称前缀来允许在多个会话中运行的系统管理应用程序连接到相同的服务。
.net – 控制台应用程序在Windows服务上的优点
有没有人对这种情况最好的做法有什么看法?
(A)我所做的是相当复杂的
(B)需要一直运行(示例:监视某些更改)
我发现大多数事情通常可以通过控制台应用程序完成一些命令行参数和Windows调度程序。
.NET控制台应用程序作为Windows服务
如何解决.NET控制台应用程序作为Windows服务?
我通常使用以下技术来与控制台应用程序或服务运行相同的应用程序:
public static class Program
{
#region nested classes to support running as service
public const string ServiceName = "MyService";
public class Service : ServiceBase
{
public Service()
{
ServiceName = Program.ServiceName;
}
protected override void OnStart(string[] args)
{
Program.Start(args);
}
protected override void OnStop()
{
Program.Stop();
}
}
#endregion
static void Main(string[] args)
{
if (!Environment.UserInteractive)
// running as service
using (var service = new Service())
ServiceBase.Run(service);
else
{
// running as console app
Start(args);
Console.WriteLine("Press any key to stop...");
Console.ReadKey(true);
Stop();
}
}
private static void Start(string[] args)
{
// onstart code here
}
private static void Stop()
{
// onstop code here
}
}
Environment.UserInteractive
通常对于控制台应用为true,对于服务为false。从技术上讲,可以在用户交互模式下运行服务,因此您可以改为检查命令行开关。
解决方法
我有控制台应用程序,并希望将其作为Windows服务运行。VS2010具有项目模板,该模板允许附加控制台项目并构建Windows服务。我不希望添加单独的服务项目,如果可能的话,请将服务代码集成到控制台应用程序中,以使控制台应用程序保持为一个项目,例如,如果使用开关从命令行运行,则可以作为控制台应用程序或Windows服务运行。
也许有人会建议类库或代码片段,这些类库或代码片段可以快速轻松地将C#控制台应用程序转换为服务?
api – Windows Phone应用程序中的捐赠
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206949(v=vs.105).aspx
build立从Windows应用程序到Google App Engine应用程序的OAuth连接
我们有一个Windows 7任务托盘应用程序需要访问我们的Google App Engine应用程序中的服务,并且我们很难在他们之间build立OAuth连接。 出于某种原因,我们与Twitter和Tumblr OAuth实现一起使用的OAuth库似乎不适用于Google的这种情况。 Google正在向OAuth授权序列中的最后一步返回400个错误的请求响应。
要debugging这个问题,我正在尝试使用Google的OAuth 1.0 Playground页面(http://googlecodesamples.com/oauth_playground/index.PHP)。 但是我不知道应该为第1步中的“范围”input什么内容。如果我input了GAE服务器的名称,则序列将失败并显示错误消息“无效范围”。 显然,select一个提供的范围(Google Api服务)不是我们的select。
任何人都可以告诉我如何在访问Google App Engine托pipe服务时设置OAuth范围指定?
在64位系统上编译32位二进制
通过密码pipe理器在Chrome密码设置中禁用Google Smart Lock
从google chrome userdir恢复会话cookie(> = 20)
远程locking计算机
在浏览器中从Web应用程序启动Windows资源pipe理器
如何在Windows上正确configurationGAE Go SDK和GoClipse?
jenkins错误克隆远程回购“起源”,从属节点
使用Windowsbatch file安装.inf文件
如何使远程协助尽可能无痛苦?
在Windows Shell启动之前启动应用程序?
只是参考看这个博客,看起来对你的情况有帮助
http://ikaisays.com/2011/05/26/setting-up-an-oauth-provider-on-google-app-engine/
我认为这个Google官方文档解释了如何为自己的appengine应用程序设置端点。 您提出的问题不是很具体,但请注意以下正在撰写的文件:
授权范围,允许消费者访问多少,适用于所有的单个应用程序。 App Engine仅支持全应用范围,不支持更多的粒度范围请求。 当Google帐户提示用户授权使用者时,提示说明消费者正在请求访问完整应用程序的权限。
你是否在你的域名上设置了OAuth?
消费者使用一组标准Web服务端点执行OAuth操作。 这些端点在您的应用程序域中使用保留的路径。 例如,如果您的应用使用www.example.com的Google Apps域,则OAuth协议的端点开始如下:
https://www.example.com/_ah/OAuth …
今天关于.net – 如何连接windows服务与系统托pipe应用程序和net服务器的讲解已经结束,谢谢您的阅读,如果想了解更多关于.net – 控制台应用程序在Windows服务上的优点、.NET控制台应用程序作为Windows服务、api – Windows Phone应用程序中的捐赠、build立从Windows应用程序到Google App Engine应用程序的OAuth连接的相关知识,请在本站搜索。
本文标签: