在asp.net中杀进程的问题!希望大家来讨论一下!
我在程序里面写如下程序,准备K掉进程,
Process[] p = Process.GetProcessesByName("waitbytethread");
foreach(Process process in p)
{
process.Kill();
}
但是在执行过程中出错!
拒绝访问。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ComponentModel.Win32Exception: 拒绝访问。
这是什么问题??如何解决??
还有,我并不想K掉所有的Excel进程,只是想K掉我调用的那个,请问有什么办法?
Process[] p = Process.GetProcessesByName("waitbytethread");
foreach(Process process in p)
{
process.Kill();
}
但是在执行过程中出错!
拒绝访问。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ComponentModel.Win32Exception: 拒绝访问。
这是什么问题??如何解决??
还有,我并不想K掉所有的Excel进程,只是想K掉我调用的那个,请问有什么办法?
...全文
请发表友善的回复…
发表回复
atian25 2003-07-30
- 打赏
- 举报
最好的方法,发mail问那些帖主吧,不过别忘了转告我一声哦~
monkey_zeng 2003-07-29
- 打赏
- 举报
楼上说得也有理,但是从greystar(greystar),atian25(阿天) 的方法来看,我不能退出我自己创建的Excel或Word线程,
该有什么办法????
象greystar(greystar),atian25(阿天)两位说的方法可以查到很多帖子都有这样写,但是我怎么就无法成功呢???
有什么注意事项吗????
该有什么办法????
象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);
}
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程序那样
你这样当客户端运行就相当杀服务端的进程,这是不安全的。
所以它不支持!
因为ASP.NET有服务端和客户端的关系
它不能和winform程序那样
你这样当客户端运行就相当杀服务端的进程,这是不安全的。
所以它不支持!
greystar 2003-07-27
- 打赏
- 举报
execel的进程我也是kill不了。
一直没有好的解决方法
一直没有好的解决方法
monkey_zeng 2003-07-27
- 打赏
- 举报
是,我只是想K服务器进程,我干嘛要去管客户端的事情!!
如果我能K客户端进程,那我这个程序可就太霸道了。
请大家继续!
如果我能K客户端进程,那我这个程序可就太霸道了。
请大家继续!
jxf3575370 2003-07-27
- 打赏
- 举报
不能K客户端进程,只能k服务器进程,比较危险
monkey_zeng 2003-07-27
- 打赏
- 举报
上面的方法我有做过,但是发现根本没有什么效果,进程仍然存在,
而且用任务管理器也不能K掉这个Excel进程!
而且用任务管理器也不能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();
下面是看到的一篇解决方法,不过没试验过
**************************************************************
标题: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
- 打赏
- 举报
我看过很多帖子,都有说到这个问题,但是好象始终没有解决。
还有就是大家都好象没有碰到:拒绝访问这个问题,或者是大家都觉得这不是个问题。
希望赐教!
还有就是大家都好象没有碰到:拒绝访问这个问题,或者是大家都觉得这不是个问题。
希望赐教!