2009-10-19 73 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