문제

몇 년 전, 또 다른 영리한 프로그래머는 서버의 설치된 프린터 중 하나에 인쇄 할 VB.NET 서비스를 설정했습니다. 작업은 인쇄 요청이 있는지 확인하기 위해 데이터베이스 테이블을 쿼리하여 인쇄 할 파일을 지정하고 프린터 이름을 보낼 프린터 이름을 지정했습니다. 이 작업은 3 부로 된 명령 줄을 구성하고이를 실행합니다. 그것은 다음과 같이 조금갑니다.

net use LPT2: IP_1.2.3.4 /user:domain\userid password >> netuse1.out
copy someExistingFile.pdf LPT2 >> copy.out
net use LPT2: /delete >> netuse2.out

우리는이 직업에 대해 다른 관련없는 변경을하도록 요청 받았으며 행복하게 준수했습니다. 배포하고 실행하는 작업의 모든 버전 만 인쇄하지 않습니다. "시스템 오류 67이 발생했습니다. 네트워크 이름을 찾을 수 없습니다."

작업은 레지스트리를 쿼리하여 사용자가 지정한 프린터의 포트 이름을 찾았습니다. 그것이 시도하는 포트는 실제로 프린터의 속성을 볼 때 우리가 볼 수있는 포트 "이름"입니다. 그렇습니다. 맞습니다.

제외하고 ... 잠깐만 요, 도대체 "포트 이름"은 무엇입니까? 유효한 IP 주소는 아닙니다 (프린터 자체의 IP 주소는 "IP_"로 접두사입니다. 프린터 포트, 컴퓨터/공유 [및 선택적 볼륨]에 대해서는 Net Use에서 찾을 수있는 것은 없습니다.

누구든지 이것이 효과가 있었는지에 대한 빛을 발할 수 있습니까?

물론 아무도 실제로 작동하는 서비스 버전의 소스를 우리에게 제공 할 수 없습니다. 우리는이 서비스 의이 부분을 만지지 않았 으며이 인쇄보다 우선합니다. 그리고 고객은 자신도 맹세하지 않습니다. grrr ...

우리는보다 현대적인 인쇄 방법을 찾고 있지만, 서비스가 실행되어야한다는 사실은 사물을 복잡하게 만듭니다.

도움이 되었습니까?

해결책

"IP_1.2.3.4"매개 변수는 포트 이름이 아닌 프린터 공유 이름입니다. 과거의 어느 시점에서 "IP_1.2.3.4"라는 이름을 제공하는 기존 설치된 프린터 중 하나를 공유해야 했으며이 공유 이름은 누락되었습니다.

패스 스루 프린터 만 있으면 "일반/텍스트 전용"프린터를 설치하고 원하는 포트에 할당 한 다음 "Net Use"명령에서 이름을 사용하여 공유 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top