2013-08-23 4 views
0

동일한 도메인의 다른 컴퓨터에서 일부 파일을 가져 오는 데 사용되는 C# Windows 서비스가 있습니다. Windows 서비스를 콘솔 응용 프로그램으로 실행하면 다른 컴퓨터에서 파일을 가져옵니다. 그러나 Windows 서비스로 실행 반환 : 유효하지 않은 자격 증명 : 192.168.100.53 (ServerNotFoundMIPException)C# Windows 서비스 유효하지 않은 자격 증명

로컬 서비스 또는 네트워크 서비스로 서비스 로그온을 변경하려했지만 성공하지 못했습니다. 이 다음은 ONSTART 방법입니다 : [PermissionSet에 (으로 SecurityAction.Demand, 이름 = "완전 신뢰")] 보호 재정의 무효 ONSTART (문자열 []에 args) 응용 프로그램 속성에서

, 보안 섹션, 나는 ClickOnce를 보안 사용 확인 설정, 이것은 완전 신뢰 응용 프로그램입니다. 내가 사용

자격 증명 유형은 다음과 같습니다

case CredentialType.Windows: 
{ 
var nc = CredentialCache.DefaultNetworkCredentials; 

나는 나의 창을 다른 컴퓨터에서 파일을 끌어 실패 무엇을 놓치고?

+0

내 컴퓨터 (uri = "http : // localhost")를 사용하면 Windows Serivce로 작동하여 내 Machne IP 주소 (uri = "http://192.168.100.73)로 변경하면 실패했습니다. – Khayralla

답변

1

\\COMPUTER2\Share\Path\file.ext과 같이 Windows 공유에서 파일을 읽는 것으로 가정합니다.

서버가 실행이

  1. 액세스 네트워크에 할 수 있어야하는 아래

    계정,

  2. 네트워크에서 컴퓨터 2에 로그온 할 수
  3. 가 (제어판을 통해 할당 된 도메인 컨트롤러와
  4. 인증합니다> 관리 도구 -> 로컬 보안 정책).
  5. 해당 공유에 대한 액세스 권한이 있어야합니다.

# 1에서 LocalSystem 및 LocalService가 실패합니다. 네트워크 액세스가 없습니다.

NetworkService는 # 1을 제공하지만 # 2에서는 실패합니다. 로컬 계정이므로 도메인 컨트롤러는 이에 대해 알지 못합니다.

도메인 acount (로컬 계정 아님)에서 서비스를 실행하고 COMPUTER2에 원격으로 로그온하고 공유 공유에 대한 읽기 권한이 있어야 해당 계정을 구성해야합니다.

또는 인증을 필요로하지 않는 다른 프로토콜을 통해 파일을 노출 할 수 있습니다 (예 : ftp 또는 http.

+0

I 타사 API를 사용하여 특정 파일을 가져오고 있으며 공유 폴더가 없습니다. – Khayralla

+0

그러면 타사 API가 인증을 처리하는 방법에 따라 다릅니다. Windows 인증을 사용하는 경우 도메인 계정으로 서비스를 실행해야합니다. 네트워크 보안은 .NET 코드 액세스 보안과 (직교) 다릅니다. 로컬 CLR이 코드를 "완전 신뢰"한다고 간주한다는 사실은 Windows 나 타사 API에 많은 영향을 미치지 않습니다. –

+0

OurDomain \ MyUsername을 추가하여 AS에 로그온하면 성공적으로 시작되었으므로 서비스에서 [email protected]을 볼 수 있습니다. – Khayralla

관련 문제