2013-12-20 64 views
-1

我正在使用以下代碼。我傳遞一個字符串f到startinfo.Arguments屬性。我送一個JSON字符串,並得到(字符串太長除外)字符串太長異常C#

ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = "WINWORD.EXE"; 
startInfo.Arguments = f; 
+1

爲什麼要傳遞一個JSON字符串作爲WinWord.exe的命令行參數?你期望完成什麼?從根本上說,如果你發現有太多的信息不能通過命令行,你應該以另一種方式提供數據 - 例如,把它放在一個文件中。 –

+0

準確地說'f'有多長?另外:爲什麼你從asp.net調用'winword.exe':明確不支持。 –

+0

對你有好處!但是你想知道什麼? – WoIIe

回答

3

這是當你將鼠標懸停在Arguments或按F12打開幫助部分明確提到,

文件系統可以與 System.Diagnostics.ProcessStartInfo.FileName屬性中指定的 應用程序相關聯的特定於類型的參數。缺省是 一個空字符串(「」)。添加的完整路徑的長度 到工藝參數的長度必須小於2080

1

微軟目前並不提倡,不支持, 自動化從任何Microsoft Office應用程序無人值守, 非交互式客戶端應用程序或組件(包括ASP, ASP.NET,DCOM和NT服務),因爲Office在此環境中運行Office時可能會出現不穩定的 行爲和/或死鎖。

Microsoft KB Article。如果你想從ASP.NET應用程序中使用winword exe,你就會「做錯了」。我建議你找一個用於Word文檔服務器端的庫,因爲如果你繼續沿着這條路走下去,你會遇到很多麻煩。