【问题标题】:Execute c# console application with Selenium from SSIS使用 SSIS 中的 Selenium 执行 c# 控制台应用程序
【发布时间】:2018-12-10 20:47:48
【问题描述】:

我有一个使用 Selenium NuGet 包的 C# 控制台应用程序。此过程会打开一些 URL,并将页面中的所有数据保存在 SQL Server 中。

问题是当我只执行 c# 应用程序时,它可以正常工作。

然后我在 SSIS 中创建一个 SSIS 包和一个脚本任务并调用这个 c# 应用程序。

再次,当我从 SSIS 执行时,它工作正常,但是当我从 SQL 代理安排 SSIS 包时,进程显示它正在运行,但从不启动,也从不完成。

是否有人知道我是否需要更改任何内容?

问候!

编辑:

这是我的开发细节。

Solution image

我的 SSIS 解决方案仅包含一个 dtsx,我在其中创建了 2 个步骤

The blue step is the c# develop that use Selenium

第一步是一个脚本,它发送一封指示进程正在启动的邮件。

第二步是执行“Scrap.exe”的进程任务。 Scrap.exe 是使用 Selenium 废弃一些 url 的 c# 开发。当我从 Visual Studio 运行此解决方案时,结果是成功的。

然后我在 SQL 代理 (SQL Server 2016) 中创建作业。该作业只有一个执行 dtsx 的步骤。

This is the job

最后,当我执行此作业(右键单击 -> 在步骤开始作业)时,作业正确运行但从未完成。

Like this

对不起,我来自阿根廷。

【问题讨论】:

  • 有很多事情可能会出错,因此要诊断您的问题,请提供一些附加信息:您是否使用日志记录来跟踪任务的状态?如果没有,实现日志记录的两种方法是直接通过脚本任务或使用工具栏中的 SSIS>Logging 进行日志记录。您在运行代理时是否收到任何错误?您在哪个版本的 SQL Server 上部署以及您在 SSIS 包中使用的目标版本是什么?您在部署之前是否将您的包转换为“包部署”?
  • 嗨,Beng!感谢您的回复!我编辑帖子为您带来更多信息。我尝试将包转换为“包部署”,但没有任何反应。

标签: c# sql selenium ssis agent


【解决方案1】:

SQL Server 代理帐户是非用户(服务)帐户,因此无权访问活动桌面会话进行任何交互。

非用户 Windows 帐户无法“与桌面交互” 从 Windows 6.1(Longhorn、Vista)开始,即使您在 Windows 帐户下运行 SQL 代理并启用“与桌面交互”,您也会得到相同的结果,因为它被视为安全漏洞,

您可能需要创建一个 Windows 应用程序,该应用程序从 SSIS 获取请求并处理和响应 DB, 此应用程序需要在真实用户帐户上启动,并且会话必须保持打开状态,

请记住,用户可以锁定屏幕但不能注销,因为应用程序将关闭。

【讨论】:

  • 感谢您的回复。我将尝试在 C# 代码中复制 SSIS 包并使用 windows 任务调度程序进行调度。
猜你喜欢
  • 1970-01-01
  • 2011-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-21
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多