导航
  • 全部
...

kill进程时出现:拒绝访问

lbsxj 2004-10-07 12:27:23
在web下在客房端调用excel后,服务器上总有excel进程,想kill掉,却出现如下问题,该怎么解决?

拒绝访问。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ComponentModel.Win32Exception: 拒绝访问。

源错误:


行 48: 'Next
行 49: Dim pTemp As System.Diagnostics.Process()
行 50: pTemp = System.Diagnostics.Process.GetProcesses()
行 51: Dim pTempProcess As System.Diagnostics.Process
行 52:

...全文
给本帖投票
2478 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingjuntm 2005-08-27
  • 打赏
  • 举报
回复
用下面的这段代码试试!
GC.Collect() '强制关闭Excel进程
GC.WaitForPendingFinalizers()
Dim process As System.Diagnostics.Process
For Each process In System.Diagnostics.Process.GetProcesses
If process.ProcessName = "EXCEL" Then
process.Kill()
End If
Next

Exit Sub
If Err.Number = 12 Then
Exit Sub
End If
Err.Clear()
coffeedou 2005-08-27
  • 打赏
  • 举报
回复
似乎无解的样子
AhBian 2004-10-12
  • 打赏
  • 举报
回复
private void KillProcess(string processName)
{
System.Diagnostics.Process myproc= new System.Diagnostics.Process();
//得到所有打开的进程
try{
foreach (Process thisproc in Process.GetProcessesByName(processName)) {
if(!thisproc.CloseMainWindow()){
thisproc.Kill();
}
}
}
catch(Exception Exc)
{
msg.Text+= "杀死" + processName + "失败!";
}
}

这段代码在当前情况执行时,还是和楼主的描述一样。
估计是进程账号的权限问题。
ASP.NET 真的不懂,帮顶。
lbsxj 2004-10-12
  • 打赏
  • 举报
回复
不行啊,还有没有办法?
GnuDoyng 2004-10-12
  • 打赏
  • 举报
回复
很多进程都是不能用Kill结束的!我以前还遇到过System、Idle等进程,如果试图Kill了它们也会发生同样错误。
lxcc 2004-10-10
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=D38781F3-07FE-4BCF-9B67-B657985BA063
lbsxj 2004-10-10
  • 打赏
  • 举报
回复
问题还是没有解决,期待高手
lbsxj 2004-10-10
  • 打赏
  • 举报
回复
人太多了
自己顶
lbsxj 2004-10-10
  • 打赏
  • 举报
回复
killerliu(Lain) :不行呀,出现错误:拒绝访问
在myProcesses = Process.GetProcessesByName("WinRAR")这一句时出现错误

高手们:上面的办法不是在web下的吧?excel进程是来宾建立的。该如何杀?
lbsxj 2004-10-10
  • 打赏
  • 举报
回复
exing(铱星):能不能说明白一点,不太清楚你的意思,谢谢!
exing 2004-10-10
  • 打赏
  • 举报
回复
应该把EXCEl的调用放在
try
.......
catch
.......
finally
释放excel

里,这样就不用再去杀EXCel的进程了
Lostinet 2004-10-09
  • 打赏
  • 举报
回复
这个问题我也见过。
不是程序的问题。

我的那次是部署在某台机器上有这个问题,在大部分机器上都没有这个问题,包括新装的服务器更没有这个问题了。

楼主不如试试其他的机器吧。
kenMoxi 2004-10-08
  • 打赏
  • 举报
回复
执行两次GC.Collect()就可以
或者直接
foreach(Process process in System.Diagnostics.Process.GetProcesses())
{
if (process.ProcessName.ToUpper().Equals("EXCEL"))
process.Kill();

}
killerliu 2004-10-08
  • 打赏
  • 举报
回复
试试吧,我昨天写的,杀死一个winrar的进程

Dim myProcesses() As Process
Dim myProcess As Process

myProcesses = Process.GetProcessesByName("WinRAR")
For Each myProcess In myProcesses
myProcess.Kill()
Next
lbsxj 2004-10-07
  • 打赏
  • 举报
回复
等待高手
veryhappy 2004-10-07
  • 打赏
  • 举报
回复
在服务器端进行进程调试应该可以杀掉该进程
luckweb 2004-10-07
  • 打赏
  • 举报
回复
会不会是正在使用中
lbsxj 2004-10-07
  • 打赏
  • 举报
回复
我是先将excel文件保存在服务器上,然后在客户端打开,再执行下列代码,但好像没起作用,每次打开网页都会有一个来宾建立的excel进程存在,如何这些进程杀死?
xlSheet.PrintPreview
xlSheet()
xlBook.Close(Nothing, Nothing, Nothing)
xlApp.Workbooks.Close()
xlApp.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet)
xlSheet = Nothing
xlBook = Nothing
xlApp = Nothing
System.GC.Collect()
lbsxj 2004-10-07
  • 打赏
  • 举报
回复
谢谢大家的帮忙,我试了一些办法都不行,总有一个来宾建立的excel进程存在。
有没有测试过的代码?
minrange 2004-10-07
  • 打赏
  • 举报
回复
权限问题吧
加载更多回复(3)

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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

手机看
关注公众号

关注公众号

客服 返回
顶部