2011-12-31 3 views
0

저는 작업중인 고전 ASP VBS 사이트에 대해 IIS 7이 설치된 Windows 7에 로컬 서버를 설치했습니다.iis7, classic asp; 형식 불일치 오류

페이지에서 "유형 불일치"오류가 발생합니다. 이것은 원래 서버로 발생하지 않습니다 (IIS, 윈도우 2008 7)

관련 코드 :

if myRS("age") = 10 then 
  • 필드 값이 디버거 확인 빈 문자열이며, 또한 오류 상태 ' 문자열 '
  • ASP 파일 인 데이터베이스 & 데이터는 프로덕션 사이트의 정확한 복사본
  • 공용 사이트와 로컬 사이트 모두에서 오류가 다시 시작되지 않습니다.
  • 프로덕션 서버는 로컬 서버가 Express Edition 인 MS-SQL 2008 R2 웹 에디션입니다.

이제 코드가 심각하게 작성되었습니다. 그러나 로컬 서버가 어떻게 이러한 오류를 제공하고 공개 서버가 제공 할 수 있습니까? 비교는 변형 유형을 통해 이루어 지므로 하위 유형은 자동으로 오류없이 평가되어야합니까?

+0

'myRS ("age")'의 반환 유형은 코드가 작동하는 원래 서버에서도 빈 문자열입니까? –

+0

대린, 네, 같은 데이터, 같은 코드를 주셔서 감사합니다. – SuperDuck

답변

3

"..intrinsic properties .."문제로 인해 발생했을 가능성이 큽니다. 내 생각 엔 프로덕션 서버가 이미 "고정"되어 있으므로 로컬 서버를 설정 한 적이 한번도 없었습니다. ".. 수정"할 필요가 없습니다.

당신은 더 많은 읽을 수 있습니다 여기에 다음에서,

http://blogs.msdn.com/b/distributedservices/archive/2010/04/28/iis-intrinsic-properties-are-disabled-by-default-on-windows-2008-and-windows-2008-r2.aspx

당신은 당신의 레코드/ADO 개체를 만들 CreateObject을 사용했습니다, 그리고이 발생하는 이러한 문제에 의해 영향을받는 것 마이크로 소프트는 기본값으로 비활성화 박스 구성.

좀 더 여기에 읽기 : 비록

http://support.microsoft.com/default.aspx?scid=kb;EN-US;287422

을 ... 당신은 간단하게 작업 할 경우, 당신은 첫 번째 링크를 읽을 수 있습니다.

+0

그게 고마워요, nonym -) 프로덕션 서버가 문제였습니다. 아주 나쁜 관행 ... – SuperDuck

0

데이터 소스 나 드라이버가 다를 수 있으므로 동일한 데이터가 약간 다릅니다.

예를 들어 빈 문자열, 빈 문자열 또는 null입니다.

myRS의 값 ("나이")을 기록 할 수 있도록 다시 쓰기를 시도하십시오.

+0

감사합니다. 쉬라즈 씨, 자세한 내용으로 질문을 업데이트했습니다. – SuperDuck

0

내가 언급 한 Nonym을 수정하기 위해 만들 수있는 서버 구성을 알지 못했습니다. 내 제안은 코드를 추론하는 대신 원하는 속성을 명시 적으로 호출하도록 코드를 업데이트하는 것이 었습니다. 예를 들어,

변경이이 속으로

if myRS("age") = 10 then 

:

if myRS("age").Value = 10 then 

이 내가 올바르게 기억 구체적인 예는 순간에 왜 마음에 오지하지만, 다른 장점도있을 수 있습니다. 행운을 빌어 요!

+0

그래, 문자열 필드에 숫자가 들어있는 것도 좋지 않습니다. 그러나 이번에는 내가 할당 한 거대한 사이트인데, 이것은 끔찍하게 코딩되어 있습니다. 나는 시간 내에 그것을 다시 쓸 것이다. 그러나 문제는 프로덕션과 로컬 서버가 다른 동작을 보이는 것입니다. – SuperDuck

0

ADO 레코드 세트 문제와 비슷합니다. myRS ("age") 값을 출력하고 아무 것도 반환하지 않거나 오류가 발생하면 연결 문자열에서 sql 드라이버를 변경하거나 CStr (myRS ("age")) = CStr (10)을 사용해보십시오.