我尝试按计划运行一个简单的ETL流程,以在.Net共享主机上填充SQL Server数据库表。该EXE文件将由网站托管,运行时将进行一些API调用并获取数据以更新网站的SQL表。 我的托管公司允许这样的事情(按计划调用exe文件),但要额外收费,但是他们要求我将其包装并使用URL进行调用。只要我提供URL,他们就不会介意使用任何技术。我很少尝试使该设置正常运行。例如,我尝试了以下两种方法:注意,我刚开始学习JavaScript,我使用C#,但这是我第一次尝试做类似的事情,但我可能会完全不了解。任何帮助将不胜感激。
<html>
<head>
<title>Open PMETL</title>
<script type="text/javascript">
function runProgram()
{
try {
var shell = new ActiveXObject("WScript.Shell");
var myPMETL="http://trudat.live/RefreshData.exe";
shell.Run(myPMETL);
}
catch (e) {
alert(e.message);
}
}
function runProgram02() {
if (window.ActiveXObject) {
try {
var excelApp = new ActiveXObject ("Excel.Application");
excelApp.Visible = true;
}
catch (e) {
alert (e.message);
}
}
else {
alert ("Your browser does not support this example.");
}
}
</script>
</head>
<body>
<a href="javascript:runProgram()">Run program</a>
<a href="javascript:runProgram02()">Run program02</a>
</body>
</html>
答案 0 :(得分:1)
我能够通过向ASP.NET应用程序中添加新页面并将控制台应用程序移植到C#背后的代码中并通过Page_Load()方法调用代码来实现这一点。这使我能够为托管公司提供一个http://mydomain/ExePage.aspx之类的URL,而不会影响我的原始应用程序,因为无法从应用程序菜单访问此新页面。这是给我所需的一种便捷方式。 我认为这不是一个典型的解决方案,因为我有拥有EXE程序源代码的优点,但是尽管如此,它还是非常有效的,并且将来可能会对某人有所帮助。