WCF 并行模拟

2023-12-27

我有一个带有“ImpersonationOption.Required”的 WCF 服务。使用并行性时,模拟似乎不会流动。例如:

Parallel.ForEach(items => results.Add(SystemUtil.WindowsUser.Name)

将返回模拟用户的号码和应用程​​序池用户的号码。模拟可以与并行性一起工作吗?

Best,

Marc

Update:

这是 IIS 服务端的实际代码。

[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public string[] WhoAmI(int numOfTests)
{
    var tests = new List<int>();
    for (var i = 0; i < numOfTests; i++)
        tests.Add(i);

    var results = new ConcurrentBag<string>();
    Parallel.ForEach(tests, (test) => results.Add(WindowsIdentity.GetCurrent(false).Name));
    return results.ToArray();
}

如果我传入 numOfTests = 10,它将生成 10 个任务并返回每个任务的 WindowsIndentity 名称。我得到的是〜70%“IIS APPPOOL.NET v4.0”和〜​​30%我。

如何设置才能使我的身份始终进入 Parallel.ForEach?

Thanks!


你需要自己处理这个问题。尝试这样的事情:

IntPtr token = WindowsIdentity.GetCurrent().Token;

Parallel.ForEach( Enumerable.Range( 1, 100 ), ( test ) =>
{
    using ( WindowsIdentity.Impersonate( token ) )
    {
          Console.WriteLine( WindowsIdentity.GetCurrent( false ).Name );
    }
} );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WCF 并行模拟 的相关文章

随机推荐

  • Flutter - 仅在首次加载时无法加载资源

    我在我的 flutter 应用程序上加载图像 如下所示 Image asset imageFilePath fit BoxFit cover 当我第一次在模拟器上运行应用程序时 出现以下异常 I flutter 7194 图像资源服务捕获异
  • 使用 WSE 3.0 添加 SOAP:HEADER 用户名和密码

    我已经成功创建了一个 WS 客户端 该客户端在不使用身份验证时可以正常工作 但是 服务器 WebSphere 现在需要添加 ws security 用户名令牌 而我很难做到这一点 生成的 SOAP 消息应该如下所示
  • 如何将软件版本从 Azure DevOps 部署到内部服务器?

    我们的软件托管在 Azure DevOps 上的 Git 中 并使用构建管道 主要使用 Cake 脚本 进行构建 我们现在希望使用 Azure DevOps 发布管道来部署该软件 然而 我们所有的应用程序服务器都位于防火墙后面 网络内部 除
  • ASP.NET WebPart 和 Google Chrome

    Hi there 这几天开始学习ASP NET Google Chrome 是我的默认浏览器 我也在 Google Chrome 中测试我的应用程序 我发现当我使用 Chrome 时 ASP NET 的某些元素不会实时运行 例如 ASP N
  • 检查对象是否为 Null 或未定义

    我有一个包含可选变量参数的函数 默认情况下 我将变量设置为NULL 但如果不是NULL我希望我的功能可以做一些事情 我需要一种方法来检查变量是否不为空 这很复杂 因为我正在使用 tidyeval 并且只是使用is null var 抛出未找
  • VBA、ADO.Connection 和查询参数

    我有 Excel VBA 脚本 Set c nn CreateObject ADODB Connection conn Open report Set rs conn Execute select from table 脚本工作正常 但我想
  • linux下如何挂载android的img文件? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近 我对android rom感兴趣 我想更改和重建它们 所以 我在我的 XOOM 上做了一些测试
  • C++:Cheat Engine 和 ArtMoney 等应用程序如何工作?

    问完后这个问题 C 我可以用指针超出应用程序的内存范围吗 https stackoverflow com questions 2976058 c can i get out of the bounds of my apps memory w
  • 我怎样才能找到这个 Json 对象的长度

    我想找到这个 JSON 对象的长度 所以有人告诉我如何获得 JSON 对象的长度 意味着我想知道这个 json 对象包含多少数据 var ddData 01 United States 02 United Kingdom 03 Aruba
  • 是否有一个函数可以将 ipAddress 作为字符串并告诉我它是否是不可路由的 IP 地址?

    我正在尝试确定 IP 地址是否可路由 例如 如果我收到 127 0 0 1 我就知道这是环回 即 localhost 我无法在 NET 或任何其他语言中找到此功能 因此我开始编写自己的函数 但还远未完成 在我花大量时间编写这个函数之前 有谁
  • 将平铺 Google 地图与 OpenLayers 3 结合使用

    如何将 google 地图与 OpenLayers 3 一起使用 我想从 OpenLayers 2 迁移到 3 这是一个例子 谷歌地图与 OpenLayers 集成示例 http openlayers org en v3 0 0 examp
  • 每天按顺序选择 10 行

    我有一个带有日期 时间戳 记录的数据库 我需要每天选择10条记录 每天还有更多 并按几列对它们进行排序 该查询应该是什么样子 您必须每天在子查询中获取 10 条记录 并通过左连接将它们连接到主表 这样您每天最多可以获得 10 条记录 SQL
  • 错误:“无法修改返回值”c#

    我正在使用自动实现的属性 我想解决以下问题的最快方法是声明我自己的支持变量 public Point Origin get set Origin X 10 fails with CS1612 错误消息 无法修改 表达式 的返回值 因为 它不
  • 在单个查询中从 mongodb 中的 2 个集合中获取数据

    我想从 2 个独立的集合中获取数据并根据date通过单个查询 这甚至可能在mongodb 我有收藏 订单类型1 id 1 name Hello1 date 2016 09 23T15 07 38 000Z id 2 name Hello1
  • Angular:单元测试路由:预期“”为“/route”

    我正在对我的 Angular 应用程序下的路由进行单元测试 我的路线在 app module ts 下导入的特定模块中声明 这是我的路由模块 应用程序路由 module ts import NgModule from angular cor
  • 将 Unicode 转换为 ASCII 而不更改字符串长度(在 Java 中)

    将字符串从 Unicode 转换为 ASCII 而不改变其长度的最佳方法是什么 这对我来说非常重要 此外 没有任何转换问题的字符必须位于与原始字符串相同的位置 因此 必须转换为 A 而不是具有更多字符的神秘内容 Edit novalis 这
  • fseek for fd(int fd 而不是 FILE*)

    fd 是否有相当于 fseek 的功能 我已经使用int fds很长时间了 想使用fseek 但我知道没有seek功能 提前致谢 查看 POSIX 函数lseek 2 http linux die net man 2 lseek SYNOP
  • 如何使用情感 CSS 覆盖 React 组件的 CSS?

    下面的例子说明了如何申请background color green to the
  • 如何创建 4 或 8 连接的邻接矩阵

    我一直在寻找一个 python 实现 给定一个数组 它返回 4 或 8 连接的邻接矩阵 我感到惊讶的是 cv2 或 networkx 不包含此功能 我发现了这个很棒的 Matlab执行 https stackoverflow com a 3
  • WCF 并行模拟

    我有一个带有 ImpersonationOption Required 的 WCF 服务 使用并行性时 模拟似乎不会流动 例如 Parallel ForEach items gt results Add SystemUtil Windows