-9

在我从其他人那里接管的网站上 - 在将水晶报表加载到报表查看器之前出现此行

System.Environment.SetEnvironmentVariable("TMP", @"C:\Temp");

它不再被提及 - 除了页面下方的错误消息似乎只是报告“TMP”等于 C:\Temp

那条线实际上是做什么的?

这是完整的代码:

ReportDocument ViewReport = new ReportDocument();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Page_Init(object sender, EventArgs e)
{
    try
    {
        string ReportPath = Server.UrlDecode(Request["Path"]);
        System.Environment.SetEnvironmentVariable("TMP", @"C:\Temp");
        ViewReport.Load(@ReportPath);
        ViewReport.SetDatabaseLogon(ConfigurationManager.AppSettings["ReportsUser"], ConfigurationManager.AppSettings["ReportsPassword"]);
        CrystalReportViewer1.Height = 640;
        CrystalReportViewer1.Width = 1100;
        CrystalReportViewer1.BestFitPage = false;
        CrystalReportViewer1.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX;
        CrystalReportViewer1.ReportSource = ViewReport;
        CrystalReportViewer1.RefreshReport();
    }
    catch (Exception err)
    {
        string Err = "Error :-" + err.Message;
        Err = Err + "Source :-" + err.Source;
        Err = Err + "Inner Error :-" + err.InnerException.Message.Replace("\r", "");
        Err = Err + "Path not found :-" + Server.UrlDecode(Request["Path"]);
        Err = Err + " TMP=" + System.Environment.GetEnvironmentVariable("TMP");
        string Message = "<script> alert(' " + Err + "');</script>";
        Response.Write(Message);
    }
}
4

3 回答 3

1

环境变量是计算机上所有进程的全局变量。我会大胆猜测并说您的报表查看器将需要存储临时文件。它将向操作系统询问存储它们的位置。操作系统将查找它的变量,在本例中是一个名为“TMP”的变量,并将其值返回给报表查看器。然后,报表查看器将愉快地将其临时文件存储在那里。

该行告诉操作系统有一个变量名 TMP,其值为 C:\Temp。

报告查看器可能会要求操作系统提供 TMP 的值以继续。

于 2013-04-10T09:20:57.070 回答
0

环境变量

环境变量是一组动态命名值,可以影响正在运行的进程在计算机上的行为方式。

它们在某种意义上可以说是创建了一个进程运行的操作环境。例如,具有标准名称的环境变量可以存储特定计算机系统用于存储临时文件的位置——这可能因计算机系统而异。通过(标准)名称调用环境变量的进程可以确保它将临时信息存储在一个存在的目录中,并且预期有足够的空间。 [1] 在几乎所有操作系统中,每个进程都有自己的一组私有环境变量。默认情况下,创建进程时,它会继承其父进程的重复环境,但父进程在创建子进程时所做的显式更改除外。运行程序可以访问环境变量的值以进行配置。

环境变量的示例包括:

路径 - 列出 shell 搜索的目录,以查找用户可以键入的命令,而无需提供完整路径。

Temp - 进程可以存储临时文件的位置

UserProfile - 指示用户的主目录在文件系统中的位置。

AppData{DeveloperName\AppName} - 用于存储应用程序设置。

Windows 环境变量列表

AllUsersProfile

应用程序数据

光盘

客户名称

CmdCmdLine

CmdExtVersion

通信规范

通用程序文件

计算机名

日期

错误级别

家庭驱动器

主页路径

本地应用数据

登录服务器

处理器数量

操作系统

小路

路径扩展

处理器架构

处理器标识符

处理器级别

处理器版本

程序文件

迅速的

随机的

会话名称

系统驱动器

系统根

温度

时间

温度

用户域名

用户域

用户名

用户资料

目录

全局我的意思是 - 通过在 Crystal Report Viewer 中显示 Crystal Report 的页面上将“TMP”EnvironmentVariable 设置为“C:\Temp”,在另一个页面上,当调用 Web 服务时,asp。 net 将临时序列化程序集保存在“C:\Temp”而不是 asp.net 目录中?

临时文件夹将仅存储与流程相关的数据,不会存储程序集和其他内容。

更多信息请访问http://environmentvariables.org/

于 2013-04-12T06:54:07.287 回答
0

环境变量是应用程序在不明确知道这些目录的情况下确定例如某个目录的路径的一种方式。
例如,如果您有一个程序需要解压缩临时文件来执行安装例程,它可以向系统询问环境变量TMP并从系统获取路径。这使得应用程序独立于实际系统,因为有人可能TMP调用了 -directoy C:\Temp,而其他人可能在D:\Temp.

来自维基百科

Environment variables are a set of dynamic named values that can affect the way 
running processes will behave on a computer
于 2013-04-10T09:01:06.240 回答