使用Deleporter进行跨进程模拟

时间:2011-11-29 13:03:51

标签: .net mocking bdd specflow

我们正在尝试使用Steven Sandersons Deleporter工具进行跨流程模拟: http://blog.stevensanderson.com/2010/03/09/deleporter-cross-process-code-injection-for-aspnet/

我们在解决这个问题时遇到了问题,很多人在Sanderson的博文评论部分报道了同样的问题: “通常只允许使用每个套接字地址(协议/网络地址/端口)”

我们成功地将Sandersons演示留言簿项目付诸实施。但是我们偶尔会得到“每个套接字只能使用一次......”的错误。回收应用程序池并执行iisreset似乎解决了这个问题。 但是,一旦我们超过套接字错误,我们就会收到此错误: “无法建立连接,因为目标计算机主动拒绝了它127.0.0.1:38473”

有没有人成功让Deleporter工作? 这个工具真的有助于我们的BDD开发。

3 个答案:

答案 0 :(得分:3)

史蒂夫2010年4月16日的GitHub提交https://github.com/SteveSanderson/Deleporter/commit/f9b9f3070ec99ddf0d11bb818decadbd46c1bf70修复了“每个套接字地址只有一次使用...”的错误。我发现Deleporter非常有用。

答案 1 :(得分:1)

我发现要使用IIS 7.5,我必须克隆git存储库,重建解决方案并使用该DLL。

答案 2 :(得分:0)

请记住,Steve提供的示例包含适用于IIS5,IIS6或Cassini的web.config。如果您使用IIS7或IIS Express尝试此操作,请确保更改web.config,使模块元素位于system.webServer部分,而不是system.web部分。

史蒂夫的博客文章对此进行了解释,但我在这里提到它,因为它让我感到震惊,直到我放慢速度并正确阅读。

我还发现使用IIS Express时,“Samples / ExternalAssemblies”文件夹中的二进制文件无效。但是如果我编译了Deleporter项目并使用了生成的二进制文件,一切都很好。

'WhatTimeIsIt'示例项目使用'ExternalAssemblies'版本,因此在用新编译的版本替换它之前,不能使用IIS Express。

一旦它正常工作,它确实是一个极好的工具。