Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 从ASP运行服务器端exe(初学者)_Asp.net_Vb.net - Fatal编程技术网

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

Asp.net 从ASP运行服务器端exe(初学者),asp.net,vb.net,Asp.net,Vb.net,我有一件简单的事情,但是我对.NET和web程序的不熟悉阻碍了我。我是一个正直的老派C程序员,最近一直在为一个电子商务网站编程ASP和ASP.NET 我有一个ASP程序,可以同步两个数据库。我还有一个VB.NET程序,编译成EXE,在同步发生之前填充源数据库。在我的脑海里,我知道我应该能够将VB和ASP.NET程序链接在一起,因为这就是.NET的强大功能。或者,如果我可以从ASP运行EXE,那么对于我的项目也一样。我有两个程序的源代码。ASP脚本是用文本编辑器编写的-VB是在VB2008Expr

我有一件简单的事情,但是我对.NET和web程序的不熟悉阻碍了我。我是一个正直的老派C程序员,最近一直在为一个电子商务网站编程ASP和ASP.NET

我有一个ASP程序,可以同步两个数据库。我还有一个VB.NET程序,编译成EXE,在同步发生之前填充源数据库。在我的脑海里,我知道我应该能够将VB和ASP.NET程序链接在一起,因为这就是.NET的强大功能。或者,如果我可以从ASP运行EXE,那么对于我的项目也一样。我有两个程序的源代码。ASP脚本是用文本编辑器编写的-VB是在VB2008Express中编写的

请假设我对链接程序集之类的东西一无所知,因为我不知道——我只是在一篇文章中读到了这一点。我更喜欢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”,但这个项目的时间很短,深入的研究还需要等待

编辑:下面Aaron的答案让我找到了解决方案的大部分方法,但我得到了:

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


解决方案:Aaron在下面的回答中加上~/in-MapPath是网站的虚拟根目录,要运行的文件与此相关。

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

System.Diagnostics.Process process1 = new System.Diagnostics.Process();
//设置文件所在的目录

process1.StartInfo.WorkingDirectory = Request.MapPath("~/");
//设置要打开的文件的文件名

process1.StartInfo.FileName = Request.MapPath("foo.exe"); 
//开始这个过程

process1.Start(); 

如果两者都有源代码,则可以打开EXE项目并将功能复制到新类库,然后在web应用中引用此类库,并调用从web应用填充数据库的方法。

Ok,离开起始块,但现在我得到以下信息:异常详细信息:System.ComponentModel.Win32Exception:拒绝访问源错误:第17行:process1.Start();想法?我认为这很可能是权限问题。默认情况下,他们不希望web请求能够关闭并在web服务器上执行文件。确保运行web服务器的用户/组可以访问该文件(但确保其不可写)。我的ASP.NET计算机帐户和Internet来宾帐户都对该可执行文件具有读取/执行权限。我给了“每个人”读/执行权限,但这也没有帮助。请确保他们也有目录权限。此链接包含有关正确设置权限的一些信息,如果我更老练一些,也许我可以这样做,但我恐怕这太过分了。我学到的ASP.NET来自一位老的ASP程序员,他认为IDE对于不懂编程的人来说是一件陌生的东西。我知道,笨蛋,但我担心我会在ASP方面迷失方向。谢谢你!当我学会正确使用它时,我会记住它!