Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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#_Asp.net Mvc 3 - Fatal编程技术网

C# 如何以指定的间隔/时间自动导出文件?

C# 如何以指定的间隔/时间自动导出文件?,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我有以下代码,在单击链接供用户保存时返回.CSV文件: public FileContentResult DownloadCSV() { StringBuilder sb = new StringBuilder(); var props = typeof(PenCalcModel).GetProperties(); var penSummary = PenSummaryReport(new DateTime(DateTime.Today.Ticks, DateTimeKi

我有以下代码,在单击链接供用户保存时返回.CSV文件:

public FileContentResult DownloadCSV()
{
    StringBuilder sb = new StringBuilder();
    var props = typeof(PenCalcModel).GetProperties();
    var penSummary = PenSummaryReport(new DateTime(DateTime.Today.Ticks, DateTimeKind.Utc), new DateTime(DateTime.Today.AddDays(1).Ticks, DateTimeKind.Utc), "");

    foreach (PenCalcModel item in penSummary)
    {
        sb.Append(string.Join(",", props.Select(p=>p.GetValue(item,null).ToString())));
        sb.AppendLine();
    }

    return File(new System.Text.UTF8Encoding().GetBytes(sb.ToString()), "text/csv", "PenReport.csv");
}

是否有一种方法可以将其设置为每X小时将完全相同的.CSV文件从服务器导出到网络驱动器?

将任何内容设置为计划任务/作业不应由web应用程序负责。该应用程序可以随时循环使用,甚至可能中断该工作。这些类型的实现应由windows服务或服务器上某种基于任务的作业负责。简短回答,不要在web应用程序中执行此操作。

将任何内容设置为计划任务/作业不应由web应用程序负责。该应用程序可以随时循环使用,甚至可能中断该工作。这些类型的实现应由windows服务或服务器上某种基于任务的作业负责。简短回答,不要在web应用程序中执行此操作。

我可能会使用powershell脚本下载内容,并使用计划的windows任务触发它。在这个问题中有几个下载内容的例子:

我可能会使用powershell脚本下载内容,并使用计划的windows任务触发它。在这个问题中有几个下载内容的例子:

好的,那么我如何在web应用程序之外进行下载呢?如果您运行的是Windows服务器,您应该考虑创建Windows服务。您可以使用SQL为您或SQL Reporting services生成文件,甚至是在服务器上执行计划任务的批处理文件。好的,那么我如何在web应用程序之外执行此操作?如果您运行的是Windows服务器,您应该考虑创建Windows服务。您可以使用SQL为您或SQL Reporting services构建一个文件,甚至是一个在服务器上通过计划任务执行的批处理文件。是的,让用户每X小时单击一次链接!开玩笑。你能澄清一下“出口”是什么意思吗?从哪里导出到哪里?如果导出的意思是下载,那么下载是从客户端启动的,因此您无法在服务器上执行任何操作来帮助完成。另一方面,您可以在客户端创建一个作业、一个服务和一个脚本,每小时为您进行x次下载。@zespri从服务器导出到网络驱动器。更具体地说:web应用程序在Sybase数据库上运行LINQ to Entities查询,我将生成的IEnumerable转换成这个.CSV文件。最简单的方法(就开发工作而言)是创建一个独立的应用程序来执行导出,并设置Windows任务计划程序作业以按计划运行。@zespri很好,这花了我5分钟的时间。是的,让用户每X小时点击一次链接!开玩笑。你能澄清一下“出口”是什么意思吗?从哪里导出到哪里?如果导出的意思是下载,那么下载是从客户端启动的,因此您无法在服务器上执行任何操作来帮助完成。另一方面,您可以在客户端创建一个作业、一个服务和一个脚本,每小时为您进行x次下载。@zespri从服务器导出到网络驱动器。更具体地说:web应用程序在Sybase数据库上运行LINQ to Entities查询,我将生成的IEnumerable转换成这个.CSV文件。最简单的方法(就开发工作而言)是创建一个独立的应用程序来执行导出,并设置Windows任务计划程序作业以按计划运行。@zespri很好,这花了我5分钟的时间。根本不是我想要的,但这很有趣。页面上的内容以易于浏览/阅读的方式格式化。我的下载链接中的内容已格式化,便于操作。这是因为普通用户只想浏览并快速浏览我的数据,而超级用户可能想下载数据并将其转换为更有用的内容,以满足他们的特定需求。这完全不是我想要的,但这很有趣。页面上的内容以易于浏览/阅读的方式格式化。我的下载链接中的内容已格式化,便于操作。这是因为普通用户只想浏览并快速浏览我的数据,而超级用户可能想下载数据并将其转换为更有用的内容,以满足他们的特定需求。