2011-04-28 117 views
0

我正在使用ASP.net webform應用程序運行現有的控制檯應用程序,該應用程序從數據庫獲取所有記錄並通過第三方WCF服務發送它們。本地一切工作正常。當我運行應用程序時,它會打開控制檯,獲取記錄併發送它們。但現在我把文件和exe文件以及相關的配置文件一起推送到測試服務器。但是,當我通過瀏覽器訪問應用程序(測試網址)時,我一次又一次收到相同的錯誤消息,而我沒有看到控制檯窗口。有時候一切正常,但從未連續兩次。從webform調用控制檯應用程序(WCF服務)的問題

的錯誤信息是:

"There was no end point listening at '.....svc' that could accept message. This is often caused by incorrect address or soap action. 

System.net.webexception. Remote name could not be resolved 
at System.Net.HttpWebRequest.GetRequestStream 
at System.ServiceModel.Channels.HttpOutput.Webrequest.HttpOutput.GetOutputStream() 

我已經在網絡表單用於調用控制檯應用程序中的代碼是:

ProcessStartInfo p = new ProcessStartInfo(); 
p.Arguments = _updateNow.ToString(); 
p.FileName="something"; 
p.UseShellExecute = false;// tried true too without luck 
Process.Start(p); 

錯誤消息表示「沒有結束點」和聽起來像WCF服務存在問題,但是如果我在Test中雙擊可執行文件,則沒有問題。可能是什麼問題或者是否應該將控制檯應用程序功能重做到我的主Webform應用程序?

更新:增加的Process.Start(P)之後的Thread.Sleep(3000)之後,我有沒有問題。因此,似乎主應用程序並未等待批處理過程完成。如何解決這個問題呢?

+0

你需要做的標題更具描述性 – Simon 2011-04-28 01:47:29

+0

您也可以澄清過程中承載WCF服務和被調用WCF服務的問題? – Justin 2011-04-28 03:02:07

+0

控制檯應用程序正在調用外部wcf服務。我從asp.net應用程序調用控制檯應用程序。 – Learner 2011-04-28 03:07:02

回答

0

好像有啓動控制檯應用程序和WCF Web服務變得初始化和可用的使用之間的一個短暫的延遲 - 這是可以預期的。

你既可以:解決這個問題

  • 工作中使用Thread.Sleep(),並可能與一對夫婦漁獲 - 重試塊。
  • 當準備好接收請求時(例如,通過寫入標準輸出並使用重定向流),您可以將控制檯應用程序報告給創建進程。

但是在這一點上,我可能會稍微重新考慮這個架構 - 開始一個新進程相對昂貴,除此之外,初始化WCF serice也是相對昂貴的。如果這是每個請求執行一次,那麼以及上述時間問題也會導致性能處罰。

是沒可能改變architecutre稍微讓一個外部進程(例如Windows服務)用於所有請求,而不是產卵,每次一個新的進程?

相關問題