问题标签 [dtf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何捕获取消长时间运行的延迟 DTF 自定义操作?
我有一个用 DTF 编写的延迟自定义操作 DLL,它将一组 .RDL 文件发布到 SQL Server 报告 Web 服务。一切运行良好,我可以捕获各种 Try Catch 块中的大部分错误情况。
我唯一遇到的问题是,如果用户在发布时按下安装程序中的取消按钮。它会立即弹出一条消息,询问我是否要取消安装,但如果我回答是,则会抛出一条消息:
引发了 Microsoft.Deployment.WindowsInstaller.InstallCanceledException 类型的异常
和一个确定按钮。
我尝试添加一个特殊的异常处理程序
在其他异常之前,但它似乎没有捕获这个特定的异常。
在取消长时间运行的延迟自定义操作期间如何处理 InstallCanceledException 的任何建议?
产品团队考虑使用其中一个应用程序,但普通用户运行这些应用程序,他们不一定知道 Web 服务 URL 或有权将报告发布到 Web 服务。我放入的安装程序通常用于运行 SQL 脚本,我正在向安装程序添加第二个功能以发布报告。它实际上工作得很好,现在放弃它。产品已经看到了我已经完成的工作并且他们喜欢它。MSI 进度条会在每个报告发布时更新它们的名称。MSI 提示输入 URI 和用户凭据,并且它已经知道 .RDL 文件所在的文件夹。当他们单击下一步按钮时,我在 URI 上运行验证,所以当我在执行序列中运行延迟操作时,它具有良好的 URI 和凭据。我' 甚至在发布过程中,我与 VPN 断开连接,但它因适当的错误而失败。从字面上看,只有当用户按下取消时,我似乎无法捕捉到那个,但它也不是这项工作走出去的阻碍。
隐藏“取消”按钮不是一个合适的选项,因为他们可以随时取消。
我在课堂上也有这些
c# - DTF 编排实例处于“待处理”状态
我们正在使用持久任务框架https://github.com/Azure/durabletask来处理长时间运行的进程,但面临编排执行问题,Azure.Storage.Table.InstanceHistory00Hub 中提供了一些编排实例,但带有 Orchestration.Status =“待处理”,即使在几周后它们也没有被处理。
我在 /orchestrator 的死信队列中找到了这些实例的消息,原因是“MaxDeliverCountExceeded”
我认为这可能是因为输入大小,但我们正在使用 DTF 实现,如果输入大小增加服务总线限制,它会将输入存储在 blob 中,我们有许多这样的实例成功处理了来自 blob 的输入,但是这些实例有blob 中没有对应的内容。
c# - Why is vbs able to find the INSTALLLOCATION when C# using both DTF and MSI API cannot?
VBS works as I desired, but both COM API and DTF using C# is not locating the InstallLocation. Followings are what I have done so far.
Thanks to this post, I was able to find a InstallLocation that is not available on registry using vbs. I understand that vbs is calling for COM API available on %WINDIR%\system32\msi.dll
.
C# COM API
So I thought I would use C# to call this method up. But it failed. Even though I can confirm the existence and installation, it cannot open one of the product GUID (I tripple checked).
Note: there were products that did not throw exception and InstallLocation were properly found. Its just not all.
Followings are my code.
OK that did not work, let's try DTF.
C# DTF
But that also was not successful. Following is my code. This does not trigger exception, and even the one that was not detectable via COM API was able to detect itself, but InstallLocation property was empty string.
Note: there were products that did have InstallLocation property filled. Its just not all.
Why is VBS able to detect the InstallLocation when neither of C# is not able to? What am I missing?
The reason I cannot use VBS is because the try catch is not available unless I use vb.net.