问题标签 [out-of-process]

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.

0 投票
3 回答
11263 浏览

angular - HTTP 错误 502.5 - ANCM 进程外启动失败

我们有两个项目,一个包含基于 .net core 2.2.6 的 Web API 和集成在 .net core 2.2.6 中的 Angular 8 Single Page Application。我们已经在 IIS 7 上部署了两者,Web API 项目运行良好,但 Angular 8 SPA 给出错误“HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure”。

尝试了多种解决方案,例如清理节点模块,重新启动服务器,部署在不同的机器上,更改端口号

请提出一些解决方案。你的帮助将不胜感激。

0 投票
1 回答
64 浏览

asp.net-core - .Net Core 2.2 Web API 项目中的 ANCM Out of Process --

我的问题是这样的-

我有一个 .NET 核心 webapi 项目 [针对 2.2]。现在在尝试运行它时,我收到以下错误,如图所示 -

在此处输入图像描述

我查阅了这个链接 --> HTTP Error 500.30 - ANCM In-Process Start Failurehttps://github.com/aspnet/AspNetCore/issues/8980

通过编辑 .csproj 文件尝试。尝试降级到 netcoreapp2.1。降级程序集版本。不工作。所以又恢复了。

更改为“处理中”和“所有人”。但这也不起作用。显示相同的错误消息。

我现在的 .csproj 文件:

事实上,我在环境中安装了 .NET Core SDK 和运行时最高版本 3.1。但还是。到目前为止,我已经尝试了几种更改设置和 sdk 等项目的 perms/combs。但它正在躲避我。究竟是什么问题?我有一种预感,这是一件微不足道但至关重要的事情,它正在躲避我。如果您需要有关项目版本/设置的更多详细信息,请告知,将分享。

0 投票
1 回答
79 浏览

c# - 使用来自 32 位 Windows 服务的 64 位进程外 COM DLL

我按照文章中提到的步骤,

https://www.codeproject.com/Tips/1199539/Using-64-bit-DLLs-in-32-bit-Processes-with-Out-of?msg=5709592#xx5709592xx

创建了一个 64 位 COM DLL (MyCOMdll.dll) 并创建了一个类 COMServer,如下所示,

然后使用以下命令使用 64 位版本的 Regasm 注册 MyCOMdll.dll,

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe MyCOMdll.dll /codebase

然后按照上述文章中的说明添加以下注册表项,

Windows 注册表编辑器版本 5.00

然后从 32 位控制台应用程序调用 TestMethod 如下,

此客户端代码在 32 位控制台应用程序中使用时可以正常工作,没有任何问题。我尝试从 32 位 Windows 服务中使用相同的代码,然后在这一行中出现异常失败,

MathClass mathObj = new MathClass();

从 Windows 服务使用 64 位 outproc 代理 dll 时是否需要进行任何特殊设置?

0 投票
0 回答
163 浏览

c++ - COM 代理服务器超时

我有一个 Win32/MFC 应用程序,它依赖于我多年前使用 C++/ATL 创建的两个独立的 STA COM DLL 服务器。这些是具有多个接口的大型 DLL 服务器,并且也成功地用于其他上下文和客户端程序。几年前,我必须创建这些 32 位服务器的 64 位版本,而我的 32 位 MFC 应用程序需要能够使用 32 位或 64 位版本的 DLL COM 服务器(选择一个复选框)。

因为 32 位进程无法在进程中加载​​ 64 位 COM 服务器 DLL,所以我通过让 MFC 应用程序通过替换在系统代理 (DLLHOST.EXE) 中创建 64 位服务器来解决此问题

需要进行一些更新,例如添加一个接口以将环境变量复制到服务器进程并设置服务器/代理的工作目录(代理从 SYSTEM32 开始),但其他接口都是可远程的。这一切似乎都很完美,我现在可以通过拨动开关从 32 位应用程序互换使用 32 位和 64 位服务器。

但是,有一个问题我无法解决:当客户端释放最后一个 interface 时,让代理快速终止。在 MFC 客户端释放所有远程接口后,代理会挂起 3-5 秒——大概是一种优化,希望客户端能回来。如果 MFC 应用程序在这 3-5 秒内使用CoCreateInstance()重新启动服务器,它会重新连接到相同的“脏”代理。服务器代码不可串行重用(它封装了数千行带有大量静态变量的遗留 ANSI“C”代码),因此重新连接到同一个实例是不可能的。

几年前,我通过让启动界面返回一个 COM 错误代码来解决这个问题,指示服务器正在等待回收(比崩溃好)。但是,当最终用户按下 MFC 应用程序中的工具栏按钮时,服务器会启动,因此这意味着用户会收到类似“等待几秒钟并重试”的消息。这行得通,但不好的部分是每次新的启动尝试都会重置 3-5 秒计数器,以防止代理退出。不耐烦的用户正在抱怨。我将添加这一切都在过程中完美地CoFreeUnusedLibraries()工作,并按预期工作。

我已经尝试了很多东西——ExitProcess()除了在服务器中编码之外的所有东西,这似乎不合适。似乎没有办法告诉代理程序应用程序已完成,不应等待更多连接。MS 文档声称在 AppID 中省略RunAs属性可能会有所帮助(我将其设置为"Interactive User")但它没有。它还提到REGCLS_SINGLUSE但随后说“在为 DLL 服务器注册代理时不要设置 REGCLS_SINGLUSE 或 REGCLS_MULTIPLEUSE”“REGCLS_SINGLUSE 和 REGCLS_MULTIPLEUSE 不应用于加载到代理中的 DLL 服务器。” 而且我无法控制代理的内容'

看起来 COM+ 可能会对回收提供一些控制,因为它似乎有一个RecycleActivationLimit选项,我可以将其设置为 0,但我不知道将其转换为 COM+ 服务器需要什么。

另一种可能性是编写自定义代理。

如果没有简单的答案,我可能会只使用灰色按钮,直到服务器消失 - 但由于我无法在不延长其生命周期的情况下探测服务器,我想我可以添加一个共享互斥体并等待它消失。啊。

RecycleActivationLimit 是否可用于常规 COM 应用程序?欢迎任何其他建议。

0 投票
0 回答
65 浏览

uwp - UWP windows.preInstalledConfigTask 多次运行

我创建了一个 uwp 后台任务。这个任务假设只在应用程序接收更新时运行一次。我在 appmanifest 文件中使用了以下配置

我发现在某些系统上,此任务正在运行多次。我不确定为什么会这样?

0 投票
1 回答
163 浏览

c++ - 无注册 COM 进程外 EXE

我有几个组件(多个 .dll,一个 .exe)需要免费注册才能使用。在我的 sxs 清单中,我将 dll 文件列为;

我已经创建并激活了一个激活上下文,并且可以CoCreateInstance();毫无问题地调用这些 dll 组件。

但是,我还有一个需要运行的 COM 服务器单例(作为 .exe),我相信您只能将 dll 文件放在 sxs 清单中。我有它的 CLSID。

我受到限制,因为使用 regsvr 不是一个选项,所以有没有其他方法可以实现这一点?理想情况下,以编程方式在与我创建这些其他组件的位置相同的位置完成所有操作。

0 投票
2 回答
314 浏览

objective-c - NSSavePanel 和 NSOpenPanel 不能在 macOS 10.15 上运行,因为它像沙盒应用程序一样处于进程之外

在 Catalina 上使用 NSSavePanel 构造函数或静态对象给出错误

eclipse + [NSXPCSharedListener endpointForReply:withListenerName:]:尝试获取侦听器“com.apple.view-bridge”的端点时发生错误:连接中断。

那么应该使用什么 API/hack 以便 NSPanel 能够在 macOS Catalina 10.15 中正常运行?

0 投票
1 回答
181 浏览

angular - .NET Core 3.1 OutOfProcess 和 AspNetCoreModule:应用程序在加载时挂起

我正在 Visual Studio 2019 上开发一个 .NET Core 3.1 + Angular Web 应用程序。我已经从包含的 VS 模板创建了项目,到目前为止一切正常。当我尝试在 Plesk 上发布 Web 应用程序时,我遇到了已知错误:

HTTP 错误 500.0 - ANCM 进程内处理程序加载失败

我已经解决了在.csproj文件中设置以下内容的错误:

不幸的是,在这些更改之后,当我尝试在 Debug 中运行应用程序时,它会挂起并无限加载,没有任何错误。

这是我的Program.cs中的主机生成器配置:

有谁知道是什么问题?

谢谢!

0 投票
2 回答
476 浏览

c# - 关闭应用程序时的 UWP 进程内后台任务

OnBackgroundActivated即使主应用程序关闭或挂起,通过该方法定义的进程内后台任务是否仍会运行,还是我必须实现进程外后台任务?

文档对此并不清楚。

我之前写过进程外的后台任务,即使应用程序不在,它们也会运行。但是,在我看来,除非应用程序处于活动状态,否则进程中的后台任务将不会运行。按照文档中的建议,我使用了延迟来避免任务被关闭,并且我在注册任务时将其设置oneShot为。false该任务不超过 10 秒。该任务已注册并且可以从 Visual Studio 手动运行,但如果应用程序关闭,它似乎不会自动运行。

总而言之,如果您需要创建一个即使主应用程序未打开也应该运行的后台任务,可以使用进程内后台任务来完成,还是必须使用进程外后台任务?

0 投票
1 回答
125 浏览

wpf - WPF 桌面桥进程外后台任务无法访问 Documents 文件夹

我正在开发一个 WPF(桌面桥)应用程序,它在启动时和进程外后台任务中执行一些逻辑。此逻辑在用户的 Documents 文件夹中创建并使用一个文件。

根据 Microsoft 开发人员博客上的文章,我在 WPF(桌面桥)应用程序中创建了进程外 BG 任务:链接

为了使用 Documents 文件夹,我在 Package 项目的清单中添加了适当的权限:

此外,我还为要在 Documents 文件夹中创建和打开的文件类型添加了文件类型关联权限,并使用常规/系统事件任务类型添加了后台任务声明。

但是很遗憾,KnownFolders.DocumentsLibrary.CreateFolderAsync("SubfolderName", CreationCollisionOption.OpenIfExists)BG任务中的方法调用导致异常:Access is denied..

堆栈跟踪:

WPF应用程序代码中相同逻辑的调用成功。向 BackgroundTaskWrapper (UWP) 项目添加相同的权限并不能解决问题。

任务仅在 Windows 2004 上正常工作。它不适用于以前版本的 Windows:1909、1903、1809、1709(由于项目的目标版本,未在旧版本上测试)。

示例:Github