1

在我的应用程序站点中,我有一个创建和生成 Excel 文件的控制器操作:从项目列表中,它通过 for 循环写入每个项目的每个字段。简化示例(因为我有大约 30 个字段):

String az = "";
az = az + "<table border=\"1\">";
az = az + "<tr>";
az = az + "<th>Field 1</th>";
az = az + "<th>Field 2</th>";
for (int i = 0; i < items.Count(); i++){
     az = az + "<tr>";
     az = az + "<td>" + items.ElementAt(i).Field1+ "</td>";
     az = az + "<td>" + items.ElementAt(i).Field2+ "</td>";
     az = az + "</tr>";
}
az = az + "</table>";

现在,当我有几行时,没问题。当我有大量行时,生成文件需要一段时间。这在 localhost 上不是问题,但是在我在 IIS 上发布站点后,它需要 7x(时间)。

例子:

加载250 行:本地主机上0.8秒,IIS上4 秒

加载615 行:本地主机上4 秒, IIS上21秒

加载950 行:本地主机上7,IIS上 38 秒

加载1300 行:本地主机上15 秒, IIS上104秒

有谁知道问题是什么?我是否必须在 IIS 站点上更改/设置一些变量?如果我没有,有没有办法优化 IIS 的性能?

谢谢,希望有人可以帮助我!

4

1 回答 1

0

首先,如果您必须像这样构建您的 html,那么至少使用字符串构建器

var az = new StringBuilder();
az.append("<table border=\"1\">");
az.append("<tr>");
//etc
return az.ToString();

但是,完全重新考虑这种方法并考虑使用 Razor 视图而不是编译您的 html 可能是值得的。当然,这取决于您可能有的其他考虑。

于 2012-11-19T13:56:19.913 回答