我有一台带有win7 x64的PC,安装了VS2013,并且我也安装了VS2013的Win Server 2012实例。我正在尝试使Browsermob proxy.net在服务器上工作,用于我正在运行的jenkins/selenium安装。当我运行automatedTester.browsermob的server.start位于server.cs文件中并实例化处理对象时,我会遇到一个错误,说:" 32位进程无法访问64位进程的模块",该模块的本地eRRORCODE具有299的本机列表:仅完成了ReadProcessMemory或WriteProcessMemory请求的一部分。
现在,如果我在Win7 X64框中运行它,它可以正常工作,但是当我在服务器2012框中运行同一件事时,它会丢弃上述错误。我正在Windows 7上运行IIS7的服务器上的IIS8。如果有人对我可以做的事情有任何想法,请发布:)我已经使用4.5框架构建了该项目,并且选择了"任何CPU"。
我担心的是,这在我的本地PC上正常工作,但在服务器上没有运行。我担心我会将其作为特定的体系结构问题进行跟踪,也许是一些安全设置或我不知道的东西。另一个信息是该Windows 2012服务器正在AWS上运行。我已经在下面发布了代码块。谢谢大家!
try
{
var _serverProcess = new Process
{
StartInfo = { FileName = pathToBrowserMobProxy }
};
}
catch (System.ComponentModel.Win32Exception e)
{
throw e;
}
这是由于newtonsoft json.net lib引用是x32版本,它随附automatedtester browsersermob包装器,我的盒子是x64。我删除了对Newtonsoft X32版本的引用,并添加了Nuget Newtonsoft软件包/参考。完成此操作后,我终于能够打开命令窗口,并运行Browsermob代理。然后,我确实遇到了一个小问题,仅运行为X32,我想这是它应该使用的方式。因此,在Jenkins中,我设置了Vstest Runner插件,并进行了测试,现在一切正常。希望这一天对某人有帮助。