Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 启动应用程序速度慢_C#_.net_Amazon Web Services_Amazon Ec2_.net 4.5 - Fatal编程技术网

C# 启动应用程序速度慢

C# 启动应用程序速度慢,c#,.net,amazon-web-services,amazon-ec2,.net-4.5,C#,.net,Amazon Web Services,Amazon Ec2,.net 4.5,我需要你的帮助 我用C#net.4.5ansAWSSDK V3.3制作了一个控制台应用程序,用于配置启动时的intance 我的问题是,在我的实例(windows server 2008r2)的第一次启动时,应用程序的启动速度非常慢,运行速度也非常慢 事实上,我使用“任务调度器”在启动时启动应用程序 当我重新启动实例或重新启动(甚至重新启动)应用程序时,一切正常 当我手动启动应用程序时:任务(应用程序需要的所有内容) 在不到40秒的时间内完成 当我使用任务调度器在启动时启动应用程序时:任务执行

我需要你的帮助

我用C#net.4.5ansAWSSDK V3.3制作了一个控制台应用程序,用于配置启动时的intance

我的问题是,在我的实例(windows server 2008r2)的第一次启动时,应用程序的启动速度非常慢,运行速度也非常慢

事实上,我使用“任务调度器”在启动时启动应用程序

当我重新启动实例或重新启动(甚至重新启动)应用程序时,一切正常

  • 当我手动启动应用程序时:任务(应用程序需要的所有内容) 在不到40秒的时间内完成
  • 当我使用任务调度器在启动时启动应用程序时:任务执行 超过5分钟!完成。(多么冷的开始!)

  • 我已延迟启动我的应用程序(使用/timout.bat) (90秒)>应用程序仍然非常慢…

  • 我已延迟启动我的应用程序(使用/timout.bat)(300 第二种),以绝对确保所有.net框架都是完整的 加载>所有工作都很好
所以,现在我必须用这个启动应用程序运行数百个spot实例。。。。如果我在每个实例启动时都浪费5分钟,我会损失很多钱

你觉得我的案子怎么样?你认为我对.net framworks预加载的看法正确吗?有可能让它加载得更快吗

我知道ngen.exe,我在.exe和DLL上试过。但问题仍然是一样的。我认为这个问题更具全球性,而不是针对我的应用程序

供您参考:

在SDK的我的应用程序中,我使用:

  • EC2安装元数据
  • 亚马逊3客户
  • GetObjectRequest
  • GetObjectResponse
凭据存储在app.config中

这门课都叫一次。(如果失败,则无重试循环)。我的意思是,如果没有互联网应用程序崩溃或返回异常。 该应用程序是在VS 2015中开发的,AWSSDK DLL位于.exe的根文件夹中

谢谢你的帮助

----------------------------编辑------------------

我用一个简单的干净控制台(VisualStudio2015模板)代码(在C:上编写100个txt文件)做了一个简单的测试。 我在启动时用任务调度器运行了这个程序,花了5分钟来完成这个巨大的任务。。。。所以问题似乎不是我的代码

编辑:我还试用了带有“.NETFramework 3.5客户端”的简单测试应用程序。同样的事情。。。应用程序挂起4分钟,然后执行此操作。(总共6分钟)

@MaLiN2223可能是一个服务而不是一个控制台应用程序是一个解决方案。。。我应该试试。 我的启动应用程序的功能:

  • 在AmazonS3上不加载文件

  • 从aws sdk获取实例信息

  • 启动或停止服务

  • 更改.ini中的值

  • 装载网络驱动器

  • 读取xml值

  • 启动应用程序

请参考测试代码:

using System;
using System.IO;
using System.Diagnostics;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 100; i++)
            {
                Console.Write("Writting file nb: " + i.ToString());
                File.Create(@"C:\test_" + i.ToString() + ".txt");

            }
            log();
            Console.ReadKey();
        }
        static void log()
        {
            using (StreamWriter writer = new StreamWriter("C:\\test_log.txt"))
            {
                var uptime02 = new PerformanceCounter("System", "System Up Time");
                uptime02.NextValue();       //Call this an extra time before reading its value
                var timeTowrite = TimeSpan.FromSeconds(uptime02.NextValue());
                writer.WriteLine(timeTowrite);
            }
        }
    }
}
使用系统;
使用System.IO;
使用系统诊断;
命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数)
{
对于(int i=0;i<100;i++)
{
Write(“写入文件nb:+i.ToString());
Create(@“C:\test_”+i.ToString()+“.txt”);
}
log();
Console.ReadKey();
}
静态无效日志()
{
使用(StreamWriter=newstreamwriter(“C:\\test\u log.txt”))
{
var uptime02=新性能计数器(“系统”、“系统启动时间”);
uptime02.NextValue();//在读取它的值之前再调用一次
var timeTowrite=TimeSpan.FromSeconds(uptime02.NextValue());
writer.WriteLine(timeTowrite);
}
}
}
}

好的…,我找到了问题和答案

问题是“任务调度器”启动应用程序时,其优先级默认设置为“低于正常值”。。。。 显然,我的应用程序速度较慢,因为许多高优先级进程是在启动时启动的

在任务调度程序中不可能直接更改优先级。必须通过以XML格式导出任务、修改任务并重新导入来完成


谢谢你

如果没有任何代码,我们可能很难调试它。您是否对此windows服务器应用了一些策略?因为:。我还建议您阅读,这可能有助于确定问题。(第二条评论,因为我后面没有字符)您还可以查找安装在那里的一些分析应用程序,它们已知会导致启动缓慢。您是否使用程序集?@MaLiN2223根据您的链接,我已经检查过,并且没有应用任何软件限制策略。。。。我目前正在阅读您提供的第二个链接。@GuillermoHernandez No my.exe未签名。但如果这是一个信号问题:为什么我的应用程序能正常工作,如果我启动时延迟太大或手动启动?你认为这可能是问题所在吗?