从ASP运行服务器端exe(初学者)

时间:2009-12-28 19:32:34

标签: asp.net vb.net

我有一个简单的事情,但我对.NET和网络程序的不熟悉阻碍了我。我是一名直接上学的C程序员,最近为电子商务网站编写了ASP和ASP.NET编程。

我有一个同步2个数据库的ASP程序。我还有一个VB.NET程序编译成EXE,在同步发生之前填充源数据库。在我的脑海里,我知道我应该能够连接VB& ASP .NET一起编程,因为这是.NET的强大功能。或者,如果我可以从ASP运行EXE,那对我的项目来说也是如此。我确实有这两个程序的来源。 ASP脚本是用文本编辑器编写的 - VB是VB 2008 Express。

请假设我对链接程序集一无所知,因为我没有 - 我只是在一篇文章中读到它。我更喜欢ASP,但如有必要,我可以使用ASP.NET脚本启动EXE。代码是带有VBScript的遗留ASP,所以我们所有的ASP.NET东西都是VB风格。 C#让我的其他程序员头疼,所以为了他的缘故,这将是VB。

有没有办法可以相对轻松地启动EXE预同步程序并让它在ASP同步脚本启动时运行?

服务器是MS Windows Server 2003 SP2 / IIS 6.0 / .NET版本是2.0.50727.3603。谢谢!

顺便说一下 - 我很乐意“学会正确使用.NET”,但这个项目的时间很短,深入的研究将不得不等待。

编辑:亚伦在下面的回答让我了解解决方案的大部分内容,但我得到了:

异常详细信息:System.ComponentModel.Win32异常:访问被拒绝
源错误:第17行:process1.Start();
想法有人吗?

解决方案:Aaron在下面的回答加上知道〜/ MapPath是网站的虚拟根,并且要运行的文件是相对的。

2 个答案:

答案 0 :(得分:8)

//创建负责启动新进程的Process类的实例。

System.Diagnostics.Process process1 = new System.Diagnostics.Process();

//设置文件所在的目录

process1.StartInfo.WorkingDirectory = Request.MapPath("~/");

//设置要打开的文件的文件名名称

process1.StartInfo.FileName = Request.MapPath("foo.exe"); 

//开始流程

process1.Start(); 

答案 1 :(得分:2)

如果您有两者的源,那么您可以打开EXE的项目并将功能复制到新的类库,然后在Web应用程序中引用此类库并调用从Web填充数据库的方法应用