我有什么应该是一件简单的事情,但我对.NET和网络程序的不熟悉阻碍了我.我是一名直接上学的C程序员,最近为电子商务网站编写了ASP和ASP.NET编程.
我有一个ASP程序,可以同步2个数据库.我还有一个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是网站的虚拟根,并且要运行的文件是相对的.
//创建负责启动新进程的Process类的实例.
System.Diagnostics.Process process1 = new System.Diagnostics.Process();
Run Code Online (Sandbox Code Playgroud)
//设置文件所在的目录
process1.StartInfo.WorkingDirectory = Request.MapPath("~/");
Run Code Online (Sandbox Code Playgroud)
//设置要打开的文件的文件名
process1.StartInfo.FileName = Request.MapPath("foo.exe");
Run Code Online (Sandbox Code Playgroud)
//开始这个过程
process1.Start();
Run Code Online (Sandbox Code Playgroud)