如何获取 .net Web 服务调用以停止模拟以执行任务

本文关键字:调用 执行任务 模拟 服务 Web 何获取 获取 net | 更新日期: 2023-09-27 18:33:40

我有一个 .net Web 服务,该服务在 Windows 身份验证和模拟设置为 true 的情况下运行。 但是,当应用连接到数据库时,它需要停止模拟并作为应用程序池的服务帐户运行。

我的理解一直是,停止模拟的方法我会运行以下代码。

WindowsImpersonationContext ctx = WindowsIdentity.Impersonate(IntPtr.Zero);

然后当我想重新启动模拟时

ctx.Undo();

但是由于某种原因,当我运行代码时,它永远不会停止模拟调用用户,而是继续作为该用户,并且无法连接到使用集成安全性的sql db,并且只有服务帐户具有数据库访问权限。

我在这里错过了什么才能使其正常工作?

如何获取 .net Web 服务调用以停止模拟以执行任务

看来我使用的方法很好。该错误是 sql 连接的问题,并且假设是模拟失败。 我通过使用错误的支票来验证身份来确认我的假设。 我原始问题中的代码实际上确实有效。