在我从其他人手中接过的网站上 - 在将水晶报告加载到报告查看器之前出现此行
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);
}
}
答案 0 :(得分:1)
环境变量是计算机上所有进程的全局变量。我会猜测并说你的报告查看器需要存储临时文件。它会向操作系统询问存储它们的位置。操作系统将查找其变量,在本例中为一个名为“TMP”的变量,并将其值返回给报表查看器。然后,报表查看器会愉快地将其临时文件存储在那里。
该行告诉操作系统存在一个变量名称TMP,其值为C:\ Temp。
报告查看器可能会要求操作系统继续使用TMP的值。
答案 1 :(得分:0)
环境变量是应用程序确定例如某个目录的路径而不明确知道这些目的的一种方式
例如,如果您有一个程序需要解压缩临时文件来执行installtion-routine,它可以向系统询问环境变量TMP
并从系统获取路径。这使得应用程序独立于实际系统,因为某人可能有一个名为TMP
的{{1}} - directoy,而其他人可能会在C:\Temp
上拥有该名称。
D:\Temp
答案 2 :(得分:0)
环境变量
环境变量是一组动态命名值,可以影响运行进程在计算机上的行为方式。
在某种意义上,可以说它们可以创建进程运行的操作环境。例如,具有标准名称的环境变量可以存储特定计算机系统用于存储临时文件的位置 - 这可能因计算机系统而异。通过(标准)名称调用环境变量的进程可以确保它将临时信息存储在存在且预期有足够空间的目录中。[1] 在几乎所有操作系统中,每个进程都有自己的一组私有环境变量。默认情况下,创建进程时,它会继承其父进程的重复环境,但父进程在创建子进程时所做的显式更改除外。运行程序可以访问环境变量的值以进行配置。
环境变量的示例包括:
路径 - 列出shell搜索的目录,用户可以键入的命令,而无需提供完整路径。
Temp - 进程可以存储临时文件的位置
UserProfile - 指示用户主目录在文件系统中的位置。
AppData {DeveloperName \ AppName} - 用于存储应用程序设置。
Windows环境变量列表
ALLUSERSPROFILE
应用程序数据
CD
CLIENTNAME
CMDCMDLINE
CMDEXTVERSION
COMSPEC
COMMONPROGRAMFILES
计算机名
日期
的ErrorLevel
HOMEDRIVE
HOMEPATH
LOCALAPPDATA
LOGONSERVER
处理器数量
OS
路径
PATHEXT
处理器架构
处理器标识符
处理器级别
处理器版本
PROGRAMFILES
提示
随机
SESSIONNAME
系统驱动
SYSTEMROOT
温度
时间
TMP
USERDNSDOMAIN
用户网域
用户名
用户配置
WINDIR
全局我的意思是 - 通过设置'TMP'EvvironmentVariable来实现 “C:\ Temp”页面上显示Crystal Report中的Crystal Report 查看者,在另一个页面上,当调用Web服务时, asp.net将临时序列化程序集保存在'C:\ Temp'中 在asp.net目录中?
临时文件夹只存储与流程相关的数据,不会存储程序集和其他内容。