2012-02-09 6 views
1

안녕 모두 안녕하세요, 나는 데이터베이스를 사용하는 C# 데스크톱 응용 프로그램을 가지고, 우리는 연결 문자열 widows 인증을 기반으로해야한다는 요구 사항이 있습니다. 연결 문자열은 '데이터 원본 = ServerName \ SQL2008R2, 초기 카탈로그 = DatabaseName, 통합 보안 = True'입니다.

우리는 응용 프로그램을 배포하기 위해 프로젝트 설정을 사용했습니다. 나는

개인 무효 MyInstaller_Committed (개체를 보낸 사람, InstallEventArgs 전자)

{ 

     try 

     { 

      Directory.SetCurrentDirectory(Path.GetDirectoryName 

      (Assembly.GetExecutingAssembly().Location)); 

      Process.Start(Path.GetDirectoryName(

       Assembly.GetExecutingAssembly().Location) + "\\ApplicationName.exe"); 

     } 

     catch(Exception ex) 

     { 

      MessageBox.Show(ex.Message); 

     } 

    } 

모든 윈도우 XP에서 잘 작동을 다음과 같이 설정을 마친 후 응용 프로그램을 실행하기 위해 설치 클래스의 코드를 추가했습니다. 그러나 Windows 7에서 설치를 마친 후 처음으로 응용 프로그램을 시작하면 'DomainName \ WENATEHEE $' '사용자가 로그인에 실패했습니다. sql 예외가 발생하지만 프로그램 메뉴에서이 응용 프로그램을 명시 적으로 실행하면 정상적으로 작동합니다. 사용자에게 필요한 모든 권한을 부여했습니다. 더 깊은 관찰에서 나는 응용 프로그램을 처음 실행하는 동안 DomainName \ User가 아닌 DomainName \ MachineName $으로 SQL 서버에 로그인하는 것으로 나타났습니다.

나는 이것에 대한 해결책을 얻지 못하고있다. 어떤 도움을 크게 사전

답변

0

설치 과정은 두 단계로 '즉시 모드'와 '이연 모드'로 구성에서

감사를 이해할 수있을 것이다. 후자는 'Windows Installer Service'를 사용하여 권한 상승이 필요한 스크립트를 실행합니다.
응용 프로그램이 외부 시스템에 연결되어 있기 때문에 처음으로 응용 프로그램이 LocalSystem 계정의 컨텍스트 (이 계정의 컨텍스트에서 Windows Installer 서비스가 실행 됨)에서 두 번째 단계 (앞서 언급 한 '지연 모드')에서 시작됩니다. 컴퓨터 계정 'DomainName \ WENATEHEE $'( LocalSystem 계정이 아님)로 자체를 인증해야합니다.
그래서 '사용자가'DomainName \ WENATEHEE $ '오류로 로그인하지 못했습니다.

시도는 Installer에서 파생 된 클래스의이 방법에 실행을 추가합니다 :

protected override void OnAfterInstall(System.Collections.IDictionary savedState) 
{ 
    base.OnAfterInstall(savedState); 
    // add you app launching code here 
} 
+1

나는 onAfterInstall 방법의 응용 프로그램 발사 코드를 추가 한하지만 난 같은 오류를 얻고있다. 다른 옵션을 제안 해주세요. 감사합니다. Narendra – user1199661