我有一些代码在运行命令行进程的ASP.NET应用程序中运行,该进程使用PSCP.EXE(Putty)将文件从外部Linux服务器复制到本地服务器。当我使用Visual Studio 2010中的“运行”命令以交互方式运行ASP.NET应用程序时,它可以正常工作。但是,当我将应用程序部署到IIS(在同一台服务器上!)并尝试运行它时,我收到一个从PSCP.EXE命令行返回的错误。错误是这样的:
致命:网络错误:连接超时
我对PSCP.EXE错误进行了一些研究,我发现的唯一一件事是人们建议需要指定端口。但我不认为这适用于我,因为当我通过Visual Studio运行应用程序时,它可以正常工作。
有没有人知道为什么在我的盒子上运行IIS 7中的命令时会出现连接超时错误,但是当我在同一个盒子上通过Visual Studio运行它时它可以正常工作?
这是我的代码:
string _pscpExePath = ConfigurationManager.AppSettings["PSCPExePath"];
string _localOptionsFolder = ConfigurationManager.AppSettings["LocalOptionsFileFolder"];
string _remoteOptionsLocation = ConfigurationManager.AppSettings["RemoteOptionsFileLocation"];
ProcessStartInfo _procStartInfo = new ProcessStartInfo("cmd", "/c " + _pscpExePath + " -pw " + App.ConfigData.ModemAdminPassword + " root@" + App.ConfigData.ModemIPAddress + ":" + _remoteOptionsLocation + " " + _localOptionsFolder);
_procStartInfo.RedirectStandardOutput = true;
_procStartInfo.RedirectStandardError = true;
_procStartInfo.UseShellExecute = false;
_procStartInfo.CreateNoWindow = true;
using (Process _proc = Process.Start(_procStartInfo))
{
using (StreamReader _reader = _proc.StandardOutput)
{
string _result = _reader.ReadToEnd();
log.Info("Get Options File Result = " + _result);
}
using (StreamReader _error = _proc.StandardError)
{
string _result = _error.ReadToEnd();
log.Info("Get Options File Error = " + _result);
}
}
答案 0 :(得分:0)
看起来我错了。 IIS站点无法连接到Linux服务器的原因不同。现在一切都正常。这个问题可以标记为已回答,甚至可以删除,因为它确实不是代码或任何问题。