2013-10-21 4 views
0

4.0에서 4.5 .NET Framework로 마이그레이션 할 때 일부 크롤러는 ASP.NET 응용 프로그램에서 캡처되지 않은 것으로 보입니다.4.5 프레임 워크의 .browser 파일에서 사용자 에이전트 캡처

<browser id="Baiduspider" parentID="Default"> 
<sampleHeaders> 
    <header name="Connection" value="close"/> 
    <header name="Accept" value="*/*"/> 
    <header name="Accept-Encoding" value="gzip"/> 
    <header name="Accept-Language" value="zh-cn,zh-tw"/> 
    <header name="Host" value="www.example.com"/> 
    <header name="User-Agent" value="Baiduspider+(+http://www.baidu.com/search/spider.html)"/> 
</sampleHeaders> 
<identification> 
    <userAgent match="Baiduspider"/> 
</identification> 
<capabilities> 
    <capability name="crawler" value="true"/> 
    <capability name="browser" value="Baidu.com"/> 
    <capability name="majorversion" value="0"/> 
    <capability name="minorversion" value=".0"/> 
    <capability name="version" value="0.0"/> 
</capabilities> 
</browser> 

그러나 라인

Request.Browser.Crawler 

반환 Baidu.com에 대한

false 

:

나는 다음과 같은 정의를 포함하는 App_Browsers 디렉토리에 .browser 파일이 사용자 에이전트 :

Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html) 

Baidu가 괄호로 인해 User-Agent 문자열을 제대로 형성하지 못하는 것 같지만 4.0 .NET Framework에서 작동합니다.

아무도 도와 줄 수 있습니까? 사전에

감사합니다!

답변

0

변경해보십시오

<browser id="Baiduspider" parentID="Default"> 

<browser id="Baiduspider" parentID="Mozilla"> 

파일 v4.0.30319의 \ 구성 \ 브라우저 \의 generic.browser 아마 이런 일이

에 :

<browser id="Mozilla" parentID="Default"> 
<identification> 
<userAgent match="Mozilla" /> 
</identification> 

을 그래서 어쩌면의를 4.5 사용자 지정 정의를 적용하기 전에 "처음"과 일치합니까?