在运行 IIS8.5 的 Windows 2012 服务器上以经典 ASP 保存 XLS 工作表 - 部分有效
Posted
技术标签:
【中文标题】在运行 IIS8.5 的 Windows 2012 服务器上以经典 ASP 保存 XLS 工作表 - 部分有效【英文标题】:Saving an XLS Worksheet in Classic ASP, on a Windows2012 server running IIS8.5 - partly works 【发布时间】:2019-10-25 15:51:33 【问题描述】:因此,我们的一位程序员离开了巢穴,我们转向了 Win2012 解决方案。该网站运行良好,一切都很好,除了 excel,特别是只有一行代码失败。
我们在 IIS 中为网站运行 ASP 经典,Excel 对象创建良好,图表保存在正确的文件夹中,但是当它点击时:
wb.SaveAs "D:\WEBSITES\test.xls"
页面出现 500 错误,然后将 excel 留在任务管理器的内存中。 如果我删除 XLS 上的保存,JPG 从图表中保存完好,代码继续并正确关闭 excel。由于 2003 年服务器和 2012 年服务器之间的代码没有更改,我有点困惑为什么它现在决定失败。
对此的任何帮助将不胜感激,我不知道做网络工作,当我这样做时,它通常会解决 COM 问题,并且由于它运行,它只是一个主要的 p.i.t.a。这一点不起作用。提前致谢 ! :)
<%
Dim xlapp ' Our Excel App
Dim wb ' Our Workbook within the Excel App
Dim ws ' Our Worksheet within the Workbook
Dim crt ' The chart object
Dim SourceRange ' The Source Range for the chart object
Const xlWorkSheet = -4167
Const xlLineMarkers = 65
Set xlapp = CreateObject("Excel.Application")
Set wb = xlapp.Workbooks.Add(xlWorksheet)
Set ws = wb.Worksheets(1)
xlapp.DisplayAlerts = false
Set SourceRange = ws.Range("A3:B6")
Set crt = ws.ChartObjects.Add(0, 0, 480, 383)
crt.Chart.ChartWizard SourceRange, 3, , 2, 1, 0, 2, "Virgin Chaser Report " & formatdatetime(now(),2)
crt.Chart.ChartType = 51
crt.Chart.HasTitle = True
crt.Chart.ChartTitle.Text = "Virgin Chaser Report " & formatdatetime(now(),2)
crt.Chart.ChartTitle.AutoScaleFont = false
crt.Chart.ChartTitle.font.Name = "Arial"
crt.Chart.ChartTitle.font.Size = 12
crt.Chart.ChartTitle.font.Strikethrough = False
crt.Chart.ChartTitle.font.Superscript = False
crt.Chart.ChartTitle.font.Subscript = False
crt.Chart.ChartTitle.font.OutlineFont = False
crt.Chart.ChartTitle.font.Shadow = False
crt.Chart.Export "D:\WEBSITES\test.jpg"
wb.SaveAs "D:\WEBSITES\test.xls"
wb.Saved = True
Set crt = Nothing
Set wb = Nothing
xlapp.Quit
Set xlapp = Nothing
response.end()
%>
【问题讨论】:
您不应该在服务器环境中使用 Excel ......但是,无论如何人们都会这样做。您能否获取该代码,将其放入 VBS 文件并在服务器上以交互方式运行它并成功?该进程是否有权访问输出目录?您应该尝试捕获 SaveAs 返回的错误。你还没有向我们展示它是什么。 【参考方案1】:在 Win2012、IIS 8.5 上找到它:(其他人对堆栈溢出的修复 - 这也适用于 Office 2000)
终于修好了。这是有效的方法,以防将来有人遇到同样的错误。
我们添加了两个文件夹:
C:\Windows\System32\config\systemprofile\Desktop C:\Windows\SysWOW64\config\systemprofile\Desktop
【讨论】:
以上是关于在运行 IIS8.5 的 Windows 2012 服务器上以经典 ASP 保存 XLS 工作表 - 部分有效的主要内容,如果未能解决你的问题,请参考以下文章
windows2012 IIS8.5 不能在此路径中使用此配置节
Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程
windows server 2012 r2 iis8.5 部署 asp.net 网站
IIS 8.5:应用程序池的虚拟帐户(IIS AppPool\应用程序池名称不可用
405 - 不允许用于访问此页面的 HTTP 动词。 [IIS 8.5] [Windows Server 2012 R2]