拒绝访问。 文件C:\ WINDOWS \ TEMP \中的错误

2020-09-09 19:05发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在Google以及整个论坛中进行了搜索,但没有一种解决方案可以解决我的问题。

水晶版本: Crsytal.Net for Visual Studio.Net 2005

服务器:Windows Server 2003

错误:

访问被拒绝。 文件C:\ WINDOWS \ TEMP \ JuryDutyReport {D6296178-3E72-483E-B876-2DFC03D00841} .rpt中的错误:无法访问报告文件。 另一个程序可能正在使用它。

当我通过 ASP.Net 附带的Web服务器在本地运行我的应用程序时,一切都是 很好,只有将应用程序部署到Windows 2003 Server时,我才会收到错误消息。

我在 ASP.Net 应用程序中使用模拟。 我已授予域用户对" C:\ Windows \ Temp",导出文件夹甚至Crystal Report驻留在服务器上的文件夹的完全访问权限。 当我在Web服务器上运行该应用程序时,实际上在" C:\ Windows \ Temp"文件夹中看到了创建的" .rpt",但是它仍然显示权限错误。

奇怪的是,下面仅将文件发送到打印机的代码会自动运行:

   私人无效PrintJuryDutyReport(DataSet ds)
 {
        //创建报告文件
         ReportDocument crDoc =新的ReportDocument();

        //加载,设置数据源和打印选项
         crDoc.Load(Server.MapPath("〜/Reports/JuryDutyReport.rpt"));;
         crDoc.SetDataSource(ds); //设置数据源
         crDoc.PrintOptions.PrinterName = ddlPrinters.SelectedValue.ToString(); //设置打印机名称
         crDoc.PrintOptions.PaperOrientation = PaperOrientation.Portrait; //设置纸张方向
         crDoc.SetParameterValue(" ParamUsername",User.Identity.Name); //设置参数
         crDoc.PrintToPrinter(1,false,0,0); //发送到打印机
 }
 

我必须更改代码才能导出为PDF,并且此代码不起作用:

     私人无效PrintJuryDutyReport(DataSet ds)
     {
        //报告文件
         ReportDocument crDoc =新的ReportDocument();

         字符串myfile = @" G:\ COPFS \ COPFSPROD \ ReportsTemp \ MyPDF.pdf";

        //加载,设置数据源和打印选项
         crDoc.Load(Server.MapPath("〜/Reports/JuryDutyReport.rpt"));;
         crDoc.SetDataSource(ds); //设置数据源
         crDoc.SetParameterValue(" ParamUsername",User.Identity.Name); //设置参数

        //通过http导出
        //
         crDoc.ExportToDisk(ExportFormatType.PortableDocFormat,myfile);
         crDoc.Close();
         crDoc.Dispose();

         Response.ClearContent();
         Response.ClearHeaders();
         Response.ContentType ="应用程序/pdf";

         Response.AppendHeader(" content-disposition"," attachment; filename =" + myfile);
         Response.WriteFile(myfile);

         Response.Flush();
         Response.Close();
 }
 

任何帮助将不胜感激,因为我明天必须将其提交给最终用户。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在Google以及整个论坛中进行了搜索,但没有一种解决方案可以解决我的问题。

水晶版本: Crsytal.Net for Visual Studio.Net 2005

服务器:Windows Server 2003

错误:

访问被拒绝。 文件C:\ WINDOWS \ TEMP \ JuryDutyReport {D6296178-3E72-483E-B876-2DFC03D00841} .rpt中的错误:无法访问报告文件。 另一个程序可能正在使用它。

当我通过 ASP.Net 附带的Web服务器在本地运行我的应用程序时,一切都是 很好,只有将应用程序部署到Windows 2003 Server时,我才会收到错误消息。

我在 ASP.Net 应用程序中使用模拟。 我已授予域用户对" C:\ Windows \ Temp",导出文件夹甚至Crystal Report驻留在服务器上的文件夹的完全访问权限。 当我在Web服务器上运行该应用程序时,实际上在" C:\ Windows \ Temp"文件夹中看到了创建的" .rpt",但是它仍然显示权限错误。

奇怪的是,下面仅将文件发送到打印机的代码会自动运行:

   私人无效PrintJuryDutyReport(DataSet ds)
 {
        //创建报告文件
         ReportDocument crDoc =新的ReportDocument();

        //加载,设置数据源和打印选项
         crDoc.Load(Server.MapPath("〜/Reports/JuryDutyReport.rpt"));;
         crDoc.SetDataSource(ds); //设置数据源
         crDoc.PrintOptions.PrinterName = ddlPrinters.SelectedValue.ToString(); //设置打印机名称
         crDoc.PrintOptions.PaperOrientation = PaperOrientation.Portrait; //设置纸张方向
         crDoc.SetParameterValue(" ParamUsername",User.Identity.Name); //设置参数
         crDoc.PrintToPrinter(1,false,0,0); //发送到打印机
 }
 

我必须更改代码才能导出为PDF,并且此代码不起作用:

     私人无效PrintJuryDutyReport(DataSet ds)
     {
        //报告文件
         ReportDocument crDoc =新的ReportDocument();

         字符串myfile = @" G:\ COPFS \ COPFSPROD \ ReportsTemp \ MyPDF.pdf";

        //加载,设置数据源和打印选项
         crDoc.Load(Server.MapPath("〜/Reports/JuryDutyReport.rpt"));;
         crDoc.SetDataSource(ds); //设置数据源
         crDoc.SetParameterValue(" ParamUsername",User.Identity.Name); //设置参数

        //通过http导出
        //
         crDoc.ExportToDisk(ExportFormatType.PortableDocFormat,myfile);
         crDoc.Close();
         crDoc.Dispose();

         Response.ClearContent();
         Response.ClearHeaders();
         Response.ContentType ="应用程序/pdf";

         Response.AppendHeader(" content-disposition"," attachment; filename =" + myfile);
         Response.WriteFile(myfile);

         Response.Flush();
         Response.Close();
 }
 

任何帮助将不胜感激,因为我明天必须将其提交给最终用户。

付费偷看设置
发送
1条回答
Nir深蓝
1楼 · 2020-09-09 19:47.采纳回答

有一个属性可以使用Temp文件打开报告。

一周热门 更多>