2011-07-25 47 views
-1

我有一個已部署在共享服務器上的Windows應用程序。我的應用程序將調用命令提示符來執行一些數據庫操作。如果我從共享位置運行應用程序,則會遇到問題。如果我在部署的服務器上運行應用程序,則不會遇到任何問題。我擁有的問題如下。從共享應用程序打開命令提示符時出現問題

我在調用它時向命令提示符傳遞了一些參數。如果我從共享位置打開應用程序,並且它沒有執行任何傳遞的參數,我會收到以下消息。

 
CMD.EXE was started with the above path as the current directory. UNC 
paths are not supported. Defaulting to Windows directory. Microsoft 
Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. 

命令提示符調用代碼如下: 通常命令參數將包含@"CD \&&C:&&CD\&&CD MyFolder &&CD MySubFolder\App.bat"

  ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", command.ToString()); 
      procStartInfo.RedirectStandardOutput = true; 
      procStartInfo.UseShellExecute = false; 
      procStartInfo.CreateNoWindow = true; 
      Process proc = new Process(); 
      proc.StartInfo = procStartInfo; 
      proc.Start(); 
      string result = proc.StandardOutput.ReadToEnd(); 
      return result; 

我收到了同樣的問題,如果我運行.bat文件直接爲好。

回答

4

答案矗立在你的問題:

CMD.EXE開始與當前目錄上面的路徑。 UNC 路徑不受支持。默認爲Windows目錄。微軟 的Windows XP [版本5.1.2600](C)版權所有1985-2001微軟公司

http://compnetworking.about.com/od/windowsnetworking/g/unc-name.htm

摘要:UNC路徑是網絡路徑。你的CMD說那些不支持。

+0

我嘗試通過調用命令提示符「@」CD \ && C:&& CD \ && CD MyFolder && CD MySubFolder \ App.bat「」App.Bat在客戶端本地計算機上,它不在服務器上運行以下命令。謝謝,Venkat Malladi –

0

很難從您提供的信息中說出來,但是您是否意識到,當您從共享位置運行應用程序時,應用程序在本地客戶端計算機上運行,​​而不是在服務器計算機上運行。

因此,如果您正在運行的應用程序正在查找服務器上的文件,那麼如果沒有相對於客戶端計算機的路徑,它將無法找到它。

如果你不試圖打開一個文件或類似的東西,那麼請給一些額外的信息

+0

我不想打開服務器上的任何文件。我試圖打開命令提示符來訪問本地客戶機上的文件。 –

+0

我試圖通過調用命令提示符「@」CD \ && C:&& CD \ && CD MyFolder && CD MySubFolder \ App.bat「」 App.Bat位於客戶端本地計算機上,它不在服務器上。 謝謝, Venkat Malladi。 –

+0

@Venkat Malladi,你的路徑需要像......「C:\ MyFolder \ MySubFolder \ App.bat」......這些「\ &&」部分是什麼意思? – musefan

相關問題