在asp.net中杀进程的问题!希望大家来讨论一下!

monkey_zeng 2003-07-27 10:27:22
我在程序里面写如下程序,准备K掉进程,
Process[] p = Process.GetProcessesByName("waitbytethread");
foreach(Process process in p)
{
process.Kill();
}
但是在执行过程中出错!
拒绝访问。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

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

这是什么问题??如何解决??

还有,我并不想K掉所有的Excel进程,只是想K掉我调用的那个,请问有什么办法?
...全文
85 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
atian25 2003-07-30
  • 打赏
  • 举报
回复
最好的方法,发mail问那些帖主吧,不过别忘了转告我一声哦~
monkey_zeng 2003-07-29
  • 打赏
  • 举报
回复
楼上说得也有理,但是从greystar(greystar),atian25(阿天) 的方法来看,我不能退出我自己创建的Excel或Word线程,
该有什么办法????

象greystar(greystar),atian25(阿天)两位说的方法可以查到很多帖子都有这样写,但是我怎么就无法成功呢???

有什么注意事项吗????
atian25 2003-07-29
  • 打赏
  • 举报
回复
那m$允许asp.net访问进程吗?我觉得出于安全,不会的
monkey_zeng 2003-07-29
  • 打赏
  • 举报
回复
不是吧,老兄们,你们用的方法都能成功吗??
我想问的是为什么我不能访问线程???????????
houjianxun 2003-07-27
  • 打赏
  • 举报
回复
同意visualcpu的观点,更希望能看到更好的回答。。。
okok999 2003-07-27
  • 打赏
  • 举报
回复
关注
greystar 2003-07-27
  • 打赏
  • 举报
回复
有个对word进行操作的,是从www.codeproject.com上搞下来的。也没试过,不知有没有用。

using System;
using System.ComponentModel;

namespace WordApplication
{
/// <summary>
///
/// </summary>
///

public class CCWordApp
{
private Word.ApplicationClass oWordApplic; // a reference to Word application
private Word.Document oDoc; // a reference to the document


public CCWordApp()
{
// activate the interface with the COM object of Microsoft Word
oWordApplic = new Word.ApplicationClass();
}

// Open a file (the file must exists) and activate it
public void Open( string strFileName)
{
object fileName = strFileName;
object readOnly = false;
object isVisible = true;
object missing = System.Reflection.Missing.Value;

oDoc = oWordApplic.Documents.Open(ref fileName, ref missing,ref readOnly,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref isVisible,ref missing,ref missing,ref missing);

oDoc.Activate();
}


// Open a new document
public void Open( )
{
object missing = System.Reflection.Missing.Value;
oDoc = oWordApplic.Documents.Add(ref missing, ref missing,ref missing, ref missing);

oDoc.Activate();
}



//我想它是调用这个方法退出,不知整个进程有没有kill
public void Quit( )
{
object missing = System.Reflection.Missing.Value;
oWordApplic.Application.Quit(ref missing, ref missing, ref missing);
}

public void Save( )
{
oDoc.Save();
}

public void SaveAs(string strFileName )
{
object missing = System.Reflection.Missing.Value;
object fileName = strFileName;

oDoc.SaveAs(ref fileName, ref missing,ref missing, ref missing,ref missing,ref missing,ref missing,
ref missing,ref missing,ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
}
visualcpu 2003-07-27
  • 打赏
  • 举报
回复
按道理是不行的,

因为ASP.NET有服务端和客户端的关系

它不能和winform程序那样

你这样当客户端运行就相当杀服务端的进程,这是不安全的。

所以它不支持!
greystar 2003-07-27
  • 打赏
  • 举报
回复
execel的进程我也是kill不了。
一直没有好的解决方法
monkey_zeng 2003-07-27
  • 打赏
  • 举报
回复
是,我只是想K服务器进程,我干嘛要去管客户端的事情!!
如果我能K客户端进程,那我这个程序可就太霸道了。

请大家继续!
jxf3575370 2003-07-27
  • 打赏
  • 举报
回复
不能K客户端进程,只能k服务器进程,比较危险
monkey_zeng 2003-07-27
  • 打赏
  • 举报
回复
上面的方法我有做过,但是发现根本没有什么效果,进程仍然存在,
而且用任务管理器也不能K掉这个Excel进程!
atian25 2003-07-27
  • 打赏
  • 举报
回复
ASP.NET版置顶还有篇《WinForm嵌入WebForm权限问题》,看看吧
eattiger 2003-07-27
  • 打赏
  • 举报
回复
关注中
atian25 2003-07-27
  • 打赏
  • 举报
回复
应该是为了安全,不给你这个控制权
下面是看到的一篇解决方法,不过没试验过

**************************************************************
标题:C#如何在Form中嵌入并且操作Excel表格 hahahawk(原作)
关键字:Excel WebBrowser hahahawk


四、包含该WebBrowser的Form退出时候,如何确保Excel进程也退出?(参见Microsoft帮助中心KB317109)

由于WebBrowser只不过是对Excel表的浏览,而Excel在单独的进程中运行。所以要保证对该Excel对象eApp及其相应的所有成员变量都释放引用,才能保证在Form退出时excel进程跟着退出。这一点在一个程序需要多次打开关闭excel表时尤为重要。
Excel.Application oApp;
Excel.Workbooks oBooks;
Excel.Workbook oBook;
Excel.Worksheet oSheet;
...........
private void ExcelExit()
{
NAR(oSheet);
oBook.Close(False);
NAR(oBook);
NAR(oBooks);
oApp.Quit();
NAR(oApp);

Debug.WriteLine("Sleeping...");
System.Threading.Thread.Sleep(5000);
Debug.WriteLine("End Excel");
}
private void NAR(Object o)
{
try{System.Runtime.InteropServices.Marshal.ReleaseComObject(o);}
catch{}
finally{o = null;}
}
经过试验,我发现除了释放这些变量以外,必须把该axWebBroswer1也销毁掉,Excel进程才退出。否则的话,即使让axWebBroser1去Navigate空内容"about:blank", excel进程仍然不会退出。因此应该将axWebBroser1所在的Form关闭掉,或者直接调用axWebBrowser1.Dispose();
如果还是其它问题导致不能正常退出,就只有调用垃圾回收了。
GC.Collect();

monkey_zeng 2003-07-27
  • 打赏
  • 举报
回复
我看过很多帖子,都有说到这个问题,但是好象始终没有解决。
还有就是大家都好象没有碰到:拒绝访问这个问题,或者是大家都觉得这不是个问题。

希望赐教!

62,046

社区成员

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

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

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

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