我已經編寫了一個運行現有vb腳本的C#後面的ASP.NET網頁。從asp.net/C#網頁調用vb腳本
想法是用戶使用網頁上傳Excel電子表格(.xls),C#對文件(文件類型,文件名等)進行一些基本檢查,然後將.xls保存到網絡位置。
然後,C#將.xls的網絡路徑傳遞給vb腳本,該腳本從.xls獲取所需的信息以創建.csv文件。
最後將.csv傳遞到存儲過程並上載到數據庫表中。
問題是,當我在我的機器上本地運行網頁時,所有這些運行都很完美。但是,當我將頁面上傳到網絡服務器時,它似乎沒有執行vb腳本;相反,它只是坐在那裏等待腳本退出。
一些快速的信息:
- Excel中安裝了Web服務器
- 網站設置爲執行腳本和可執行文件
- 腳本當前設置爲「運行爲」我的個人域名註冊上(這有可能改變),它具有Web服務器
- 上管理員如果我運行使用命令提示符它的工作原理
我真的很感謝任何關於可能出現問題的想法......認真地說,我把我的頭髮放在這一張上,並會考慮任何想法,不管它有多瘋狂......但是,這是一個很大的想法,儘管有實現相同的結果的其他許多方面,恐怕對於多種原因,這是我有:)
編輯
這裏是爲了工作我如何調用腳本
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運行,我只需要勾選「所有用戶'任務管理器中的複選框...我依然沒有明智的!
感謝這麼多提前
究竟是在哪裏看起來會破壞......應用程序如何調用vbscript,您可以在您的關鍵點張貼一些代碼處理。 – 2009-10-19 11:04:34
感謝您的回覆,請參閱我的編輯 – Kurut 2009-10-19 11:42:47