【问题标题】:Air app running SSIS package aborted by IIS (sql server / adobe Flex)运行 SSIS 包的 Air 应用程序被 IIS 中止(sql server / adobe Flex)
【发布时间】:2013-09-20 16:17:18
【问题描述】:

我从 Adob​​e AIR 应用程序运行 SSIS 包时遇到问题。我不太确定问题出在哪里,所以我希望这对于在正确领域有知识的人来说是显而易见的!

首先介绍一下我的架构(如果你可以这么称呼的话)。
我有一个 Adob​​e AIR 应用程序。此应用程序使用经典的 asp 页面来建立与 sqlserver 数据库的连接。然后它将字符串传递给数据库。任何响应都通过 ASP 页面返回到 Air 应用程序,该页面将数据包装为 xml 消息。这适用于我在过去一年左右不得不抛出的大多数事情,例如选择、插入、存储过程的执行等。

我现在希望用户能够执行 SSIS 包。我处理这个的方式是有一个存储过程'RunPopulateRPTSchema'。然后通过单击 Air Web 应用程序上的按钮来运行它。在过程中是对运行包的 SQL 代理的调用: EXEC msdb..sp_start_job N'PBMIPopulateRPTSchema'

我有一些处理来确保 proc 正在运行,并循环直到它完成,并且在完成时选择插入了多少行。这是应该返回给用户以定义成功的内容。我的问题是该消息没有返回到 ASP/AIR 并最终超时。

我在 Sql Server Profiler 中进行了跟踪...它告诉我 IIS 中止了进程,我认为这就是我没有得到响应的原因。我不确定是否应该设置一些东西来允许这样做!

如果我通过 Sql Management Studio 运行此程序,使用相同的 ID 一切正常 - 不会中止。这似乎有点奇怪,但有什么想法吗?我认为这是 IIS 的超时问题,但我不能确定,也不确定在哪里重置它。

另外一点信息 - 包通过 SSIS 完成并且数据得到更新,但我没有在我的应用程序中获得该信息

干杯

安德鲁

【问题讨论】:

  • 我对这种方法很感兴趣也很害怕
  • 哈哈。您需要通过您的 ..erm.. 架构重新开始工作,并记录每一步并找出失败的地方。那么...该软件包在 BIDS 中以交互方式工作?当您手动运行 SQL 作业时它是否工作?当您从应用程序调用 SQL 作业时,它是否启动?通常这是一个权限问题。基本上你需要在每一步做更多的调查,找出失败的地方。让您认为“IIS 中止进程”的信息是什么? - 准确地发布你所看到的。我的猜测是IIS账号没有足够的权限调用sp_start_job
  • 是的 - '架构'......它不是很好。只是要清楚 - 工作由网页中的用户启动。一切运行良好,只是没有报告回来。每次查看 IIS 的“中止”都会在进程中发生 30 秒,这就是为什么我认为这是某些描述的超时 - 而不是权限问题。鉴于这种方法既可笑又可怕,你会怎么做?
  • 我将其更改为运行需要几秒钟的虚拟 proc,并且它有效 - 排除了权限等。信息返回到我的应用程序。当我在 WAITFOR DELAY '00:00:35' 语句中添加时,SqlServer Profiler 中显示中止......任何想法!有可以更改的设置吗? asp中的Server.ScriptTimeout不影响它,所以我认为这是一个IIS问题,但我对此了解不多。

标签: sql-server apache-flex iis air ssis


【解决方案1】:

排序 -

在我的 asp 脚本中,我需要设置 CommandTimeout 和 ScriptTimeout - 我只设置 Server.ScriptTimeout。显然 CommandTimeout 默认为 30 秒。

conn.Open connString
conn.CommandTimeout = n seconds
Server.ScriptTimeout= n seconds

我仍然很想改进这个过程,所以我渴望听到任何改进。

【讨论】:

    猜你喜欢
    • 2011-06-17
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多