我正在测试一个利用Add-Type添加一些自定义C#代码的工作流程Runbook。PowerShell会话/环境隔离 - 共享相同上下文的作业?
突然之间,我开始在随后的测试作业中出现'type already exists'错误,好像没有创建新的PSSession。
换句话说,它看起来像新的工作共享相同的执行上下文。如果我尝试每个PS实例运行两次相同的命令,我只能在本地获得。
有问题的类型是带有一些扩展方法的静态类。由于它也恰好是在源代码块中声明的第一种类型,我不怀疑其他非静态类型也会引发错误。
我已经执行了这么多次,所以我完全期待'最终'这会停止发生,但我似乎无法强制它,并且我不知道我能做些什么来绊倒它也陷入了这种情况。
看到共享的执行上下文的证据跨越这样的工作 - 即使是(特别是?)如果只是时间 - 使我怀疑,如果部分或全部制作&进行部署时,我们已经看到在过去的一般执行不一致的改变&表演不久后的测试与此有关。
我很想知道这只是测试任务和“真实”测试任务之间差异的一部分,但这引发了关于测试任务本身WRT模拟已发布任务的有效性的问题。
是否所有的Azure自动化作业都应该在隔离中执行?这可以被开发人员控制/利用吗?
感谢乔 - 这是一个真正有助于解释执行过程。这是否更详细地记录在其他地方?理想情况下,这将作为一个模块(而不是内联c#)进行部署,在这种情况下,get-module流程可以很好地抵御它,如果需要的话。很有必要了解sanbox重用的潜力,以便主动编写一致的执行代码。 – JoeBrockhaus