我是StackOverflow的新手,请帮助
当我使用以下命令将Web应用程序与控制台应用程序连接时,我有两台服务器,一台是开发服务器,另一台是SIT。
Dim P As New Process
P.StartInfo.FileName = "C:\inetpub\wwwroot\XYZ\XYZ.exe"
P.StartInfo.Arguments = Batch_ID
P.Start()
当我在SIT环境中进行连接时,控制台应用程序将一直运行到任务完成为止;而当我在Dev Server中进行连接时,控制台应用程序将在一段时间后关闭,而无法完成整个任务。
我已经检查了所有设置寿命的应用程序池时间,服务器理想时间都相同。
请为我提供解决方案,因为在此问题上,我无法找到其他选择。
答案 0 :(得分:0)
是否要使用asp.net打开.exe
文件?
为了简化配置,我们将exe
的位置保留在web.config的appsettings
中,以便可以轻松配置它。
<appSettings>
<add key="EXELOC" value="C:\inetpub\wwwroot\XYZ\"/>
</appSettings>
从ASP.Net调用exe
运行ASP.Net的服务帐户应具有对exe位置的正确访问权限,并且应具有对exe试图访问的资源的所有访问权限;否则代码将无法启动exe。
有时,需要指定其他设置才能在运行服务器的exe上具有控件。 System中的ProcessStartInfo类。诊断名称空间可以在这些情况下帮助我们实现目标。请参考下面的代码,
protected void btnStart_Click(object sender, EventArgs e)
{
string locn = ConfigurationManager.AppSettings["EXELOC"];
Process myProcess = new Process();
try
{
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = locn + "XYZ.exe";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}