江湖告急:asp.net服务器端关闭EXCEKL进程问题!(参照多个帖子方法,仍不能解决,请大虾帮忙)

123comeon 2007-06-07 04:09:12
环境:WIN2003SERVER ASP.NET OFFICE2003 VB.NET2005
网络用户具用变更和写入文件权限
代码如下:
Private Sub psWriteToExcel(ByVal dtdata As DataTable)
Dim strPath As String
Dim strFileName As String
Dim objFile As Scripting.FileSystemObject
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim i As Integer
Try
strPath = Me.Server.MapPath("..") & "\XlsModule\"
strPathName = Dir(strPath, vbDirectory)

If strPathName = "" Then
MkDir(strPath)
End If

objFile = New Scripting.FileSystemObject

xlApp = CreateObject("Excel.Application")

xlBook = xlApp.Workbooks.Add
xlSheet = xlBook.Worksheets(1)

'EXCEL操作(略)

xlBook.SaveAs(strPath & strFileName)

xlBook.Close()
xlApp.Workbooks.Close()
xlApp.Quit()

ReleaseComObject(xlSheet)
ReleaseComObject(xlBook)
ReleaseComObject(xlApp)
xlSheet = Nothing
xlBook = Nothing
xlApp = Nothing
objFile = Nothing
Catch ex As Exception
Throw ex
End Try
End Sub

并在调用此函数后显示调用GC.Collect()

参考了多篇帖子:
方案1:
在服务器端检索Excel进程并KIll掉(用时间段查询,尽量避免误杀),可以实现,但是需要给用户Administrator权限,不安全,并且可能会杀死正常的进程,客户不会同意,不准备采用
方案2:
关闭所有引用Excel对象(app,workbook等,)
xlBook.Close()
xlApp.Workbooks.Close()
xlApp.Quit()

ReleaseComObject(xlSheet)
ReleaseComObject(xlBook)
ReleaseComObject(xlApp)
xlSheet = Nothing
xlBook = Nothing
xlApp = Nothing
并在调用Excel操作并在函数外(Excel工作区域外)显示调用GC.Collect(),未成功
方案3:
在创建Excel对象前判断是否有进程存在,有的话引用,没有再新建,保证只有一个进程,未成功。(本地好使,在服务器上仍每次新建一个进程)
Try
xlApp = Microsoft.VisualBasic.Interaction.GetObject(Nothing, "Excel.Application")
Catch
xlApp = New Microsoft.Office.Interop.Excel.Application()
End Try

错误出在哪里呢,请各位多多帮忙。谁的回答解决问题就结帖给全部分,分不够再加。
...全文
3185 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
it_mpf 2007-06-08
  • 打赏
  • 举报
回复
ASP.NET用户没那个权限的

你可以再写一个命令行应用程序或是Windows服务吧,那个才有权限结束进程
123comeon 2007-06-08
  • 打赏
  • 举报
回复
结了,参与都有分。自己再研究吧。
tosgd 2007-06-08
  • 打赏
  • 举报
回复
老弟,还是在服务端结束进程吧(做个定时扫描程序)!客户端没那个权限!我也遇到了相同的问题
123comeon 2007-06-08
  • 打赏
  • 举报
回复
来个人接分。。。
123comeon 2007-06-07
  • 打赏
  • 举报
回复
江湖没有这方面的高手侠士么。。。
mincunbao 2007-06-07
  • 打赏
  • 举报
回复
帮顶
liubin911 2007-06-07
  • 打赏
  • 举报
回复
不懂,还是VB的,up

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧