2009-10-19 59 views
0

我已经编写了一个运行现有vb脚本的C#后面的ASP.NET网页。从asp.net/C#网页调用vb脚本

想法是用户使用网页上传Excel电子表格(.xls),C#对文件(文件类型,文件名等)进行一些基本检查,然后将.xls保存到网络位置。

然后,C#将.xls的网络路径传递给vb脚本,该脚本从.xls获取所需的信息以创建.csv文件。

最后将.csv传递到存储过程并上载到数据库表中。

问题是,当我在我的机器上本地运行网页时,所有这些运行都很完美。但是,当我将页面上传到网络服务器时,它似乎没有执行vb脚本;相反,它只是坐在那里等待脚本退出。

一些快速的信息:

  • Excel中安装了Web服务器
  • 网站设置为执行脚本和可执行文件
  • 脚本当前设置为“运行为”我的个人域名注册上(这有可能改变),它具有Web服务器
  • 上管理员如果我运行使用命令提示符它的工作原理
在Web服务器上的脚本210

我真的很感谢任何关于可能出现问题的想法......认真地说,我把我的头发放在这一张上,并会考虑任何想法,不管它有多疯狂......但是,这是一个很大的想法,尽管有实现相同的结果的其他许多方面,恐怕对于多种原因,这是我有:)

编辑

这里是为了工作我如何调用脚本

   try 
       { 
        System.Security.SecureString password = new System.Security.SecureString(); 

        string uspw = "mypassword"; 
        foreach (char c in uspw) 
        { 
         password.AppendChar(c); 
        } 

        Process scriptProc = new Process(); 
        scriptProc.StartInfo.FileName = @"cscript"; 
        scriptProc.StartInfo.Arguments = scriptPath + " //Nologo " + uploadPath + xlsFileName; 
        scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; 
        scriptProc.StartInfo.UserName = "myusername"; 
        scriptProc.StartInfo.Password = password; 
        scriptProc.StartInfo.UseShellExecute = false; 
        scriptProc.Start(); 
        scriptProc.WaitForExit(); 
        scriptProc.Close(); 

       } 
       catch... 

所有的文件路径都是相对的。

当脚本被调用时,代码似乎失败。您可以清楚地看到等待脚本完成的页面。但是,如果您在Web服务器上观看任务管理器,则不会开始运行cscript或excel。

我也坚持一个消息框,就在这没有得到显示的脚本开始

编辑2 事实证明,CSCRIPT运行,我只需要勾选“所有用户'任务管理器中的复选框...我依然没有明智的!

感谢这么多提前

+1

究竟是在哪里看起来会破坏......应用程序如何调用vbscript,您可以在您的关键点张贴一些代码处理。 – 2009-10-19 11:04:34

+0

感谢您的回复,请参阅我的编辑 – Kurut 2009-10-19 11:42:47

回答

1

听起来像你正在使用自动化来控制Excel应用程序本身?

一些快速的信息:

  • Excel中安装了Web服务器

这通常是一个坏主意的,因为Excel应用程序是不是打算申请被服务器自动化。事情可能会挂起,因为应用程序正在等待某个对话框中的用户输入。而且它不能同时处理来自多个用户的操作。

如果最终目标是从excel文件中提取数据并将其放入sql服务器,我宁愿建议您使用Jet OLEDB提供程序从Excel Web应用程序中检索数据,并让数据进入sql服务器,或让sql服务器直接执行。如果在excel文件中有很多数据,后者可能是最好的选择

1

在没有看到代码,这是一个盲目的猜测 - 我建议你查一下你是如何规定的VB脚本路径 - 确保你没有使用绝对路径,那该文件与您的计算机上的C#页面位于相同的位置。

+0

感谢您的回复,请参阅我的编辑 – Kurut 2009-10-19 11:43:22