Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Net在另一台机器上编译时,每个浏览器的行为都不同_.net_Regex_Vb.net - Fatal编程技术网

.net Net在另一台机器上编译时,每个浏览器的行为都不同

.net Net在另一台机器上编译时,每个浏览器的行为都不同,.net,regex,vb.net,.net,Regex,Vb.net,请容忍我,因为这可能不像你想象的那样标准。也许会是这样。我只能希望 我创建了一个工具,它使用两个web浏览器来读取和比较数据。它在我自己的电脑上编译的很好 编译完成后,我在不同的VPC和VPS上运行它,第一个加载数据并读取它没有问题。那很好(没有问题) 第二个浏览器加载。所有的数据都在那里。但我让它将信息转储到一个列表框和一个数组中(与第一个浏览器相同,当我在本地运行它时,这两个浏览器都可以正常工作) 两种浏览器的工作方式相同,使用: For Each element As HtmlElemen

请容忍我,因为这可能不像你想象的那样标准。也许会是这样。我只能希望

我创建了一个工具,它使用两个web浏览器来读取和比较数据。它在我自己的电脑上编译的很好

编译完成后,我在不同的VPC和VPS上运行它,第一个加载数据并读取它没有问题。那很好(没有问题)

第二个浏览器加载。所有的数据都在那里。但我让它将信息转储到一个列表框和一个数组中(与第一个浏览器相同,当我在本地运行它时,这两个浏览器都可以正常工作)

两种浏览器的工作方式相同,使用:

For Each element As HtmlElement In Me.BROWSERNAME.Document.GetElementsByTagName("span")
找到它想要的统计数据

我搞不懂为什么一个浏览器可以工作而另一个不行。它每次都在本地工作,但一旦我编译它并把它放在其他地方,第二个就不会读了

我能看到两者之间的唯一区别是使用了一点正则表达式:

readdata = System.Text.RegularExpressions.Regex.Replace(readdata, "[^\d]", " ")
和一个stringsplit来分解每条线

Dim parts As String() = readdata.Split(New String() {Environment.NewLine},
                                         StringSplitOptions.None)
所以我唯一的假设是,这是使用一些在其他系统上不起作用的东西

其他系统都安装了最新的.net。我已经修改了regex来更改浏览器模拟设置(这样vb.net浏览器就可以加载了,但我在本地也做了同样的事情,而且效果很好)

我的进口:

Imports System.IO 
Imports Microsoft.Win32
Imports System.Threading 
但我假设这些都将包含在build或.net框架中。也许这就是我出错的地方,但我不知道如何将它们包括在内

我正在为“任何cpu”构建。我尝试将.exe复制到其他系统,并尝试使用发布部分将其安装到其他系统上,结果相同

如果有任何建议,我将不胜感激。我在这里快发疯了

编辑:


经过进一步测试后,从第二个浏览器中读取的部分信息很好(与本地相同)。但是第二部分使用了上面的stringsplit和regex代码,所以我很确定这是没有发生的。

你确定IE在第二台电脑上更新了吗?我相信.NET浏览器控件使用IE,因此可能是由于浏览器版本过时(假设您使用的是默认控件),网站加载不正确,无法对其进行解析。检查过的IE已更新。该网站加载正常,我可以在浏览器控件上看到它,它是读取它的子程序的某个部分,它不工作。不过谢谢。是否有可能将Visual Studio放在第二个版本上,这样您就可以在项目中运行一个断点来确定它在哪里崩溃了?可能。我必须弄清楚如何在调试版本上运行浏览器仿真,以便正确加载。我想我是用vhost进程来做的,我会看一看。也许这与此无关;第二台机器是什么样的平台?可能是
环境。NewLine
在第二台机器上返回类似
\r\n
的内容,而在第一台机器上只返回
\n
。也许可以尝试硬编码你正在寻找的那类新行,看看它是否有用。