2009-07-06 8 views
20

내 WPF 응용 프로그램은 현재 일부 컨트롤이있는 화면 만 표시하며 DB에 연결하지 않거나 다른 기능을 가지고 있습니다. 간단한 UI 화면입니다.WPF 응용 프로그램 시작시 느림

일부 컴퓨터 (WinXP SP2)에서 테스트를 수행 할 때 시작하는 데 15 초 이상 걸렸습니다. 그들은 모두 우리 영역에있었습니다.

Windows 만 설치된 유사한 컴퓨터를 사용하고 응용 프로그램을 시작하는 데 2 ​​초가 걸렸습니다.

그런 다음 도메인에 컴퓨터를 추가하고 도메인 사용자와 함께 테스트하면 시작하는 데 15 초도 걸렸습니다. 이전 사용자 (로컬 사용자)와 다시 테스트했는데 여전히 빠릅니다. 다른 로컬 사용자를 만들었지 만 도메인 사용자도 걸리는 시간은 15 초입니다. 다른 로컬 사용자를 추가했지만 속도가 느립니다.

요약 : 응용 프로그램이 테스트 한 첫 번째 사용자 한 명만 빠르게 (2 초) 시작됩니다. 다른 모든 사용자 (도메인 또는 로컬)는 느립니다 (15 초).

나는 Improving WPF applications startup time을 확인했지만 내 문제는 다른 접근 방식을 필요로합니다. 아무도 무슨 일이 일어날 수 알아낼 수 있습니까?

+0

얼마나 테스트 컴퓨터에 배포 할 때 ClickOnce를 사용하고 있습니까? – Oskar

+0

.EXE 및 WPFToolkit.dll을 폴더에 복사하는 것만 배포하고 있습니다 .GAC에 .DLL을 이미 설치하려고했지만 결과는 동일합니다. –

+3

Code Signed/Authenticode 어셈블리를로드하는 것은 닷넷 응용 프로그램입니다 (강한 이름 서명과 다른) –

답변

18

documentation from Microsoft에서이 문제에 대한 다른 해결책을 찾았습니다. 또한 문제를 해결합니다 app.config 파일에 다음과 같은 구성을 추가

는 :

<configuration> 
    <runtime> 
     <generatePublisherEvidence enabled="false"/> 
    </runtime> 
</configuration> 

이렇게하면 컴퓨터의 구성을 변경할 필요가 없습니다. 응용 프로그램의 구성입니다.

UPDATE :
은 MSDN에 here을 문서화 .NET 4.0,이 문제를 해결 것으로 보인다.

+0

해법이나 다른 수표에 대해서만 체크를 불가능하게하는지 여부는 문서에서 명확하지 않습니다. – OregonGhost

+0

네, 맞습니다. 지금은이 두 가지 옵션이 있습니다. 어쩌면 나중에 이것에 대한 좀 더 많은 정보를 확인하려고 노력할 것입니다. –

+2

.Net 4.0 이상에서는 http://msdn.microsoft.com/en-us/library/bb629393(v=vs.100).aspx –

0

어떤 방식 으로든 파일을 열거 나 네트워크에서 상호 작용합니까? 왜냐하면 그렇지 않다면 나는 당신이 도메인에 로그인했는지 또는 로컬 사용자로 실행 중인지 여부가 아마도 청어라고 제안 할 것이기 때문입니다.

디버그 또는 릴리스 모드로 구축하고 있습니까? 디버그를 실행하면 추가 오류 검사가 수행되기 때문에 이미 릴리스 모드를 시도해 보는 것이 좋습니다.

+0

응용 프로그램이 네트워크 또는 DB와 어떤 방식으로도 상호 작용하지 않습니다. 단순히 영향을받을 수있는 WPF 응용 프로그램 일뿐입니다. 거기에 몇 가지 컨트롤이있는 폼을 엽니 다. 해제 모드. 감사. –

0

이 시나리오에 영향을 줄 수있는 도메인 정책이 있는지 확인 했습니까?

+0

현재 그걸 찾고 있지만 여전히 찾을 수 없습니다. –

12

시스템이 네트워크에 연결되었지만 프록시가 구성되어 있지 않아 인터넷에 연결할 수 없습니까? 그렇다면 인터넷 설정 (예 : Internet Explorer 속성), 고급으로 이동하여 트리보기에서 보안 및 "취소 된 인증서 확인"또는 뭔가 (독일어 Windows를 사용하므로 체크 표시가없는 손에 영어 레이블). 선택을 취소하고 다시 테스트하십시오.

이 문제가 해결되면 .NET Framework에서 취소를 확인하고 15 초 후에 제한 시간을 초과하는 Microsoft의 서명되지 않은 어셈블리가 하나 있습니다. 확인을 사용하지 않거나 인터넷 연결을 올바르게 구성하면 기다릴 필요가 없습니다.

+2

이것은 대단한 답변입니다! 문제가 해결되었습니다! 이 응용 프로그램을 실행하는 컴퓨터는 인터넷에 액세스 할 수 없습니다. 고마워요! –

+0

+1 : 좋은 장소 오레곤! –

+0

좋은 조언. 하지만 IE 연결 설정이 아닌 다른 장소에서 구성 할 수 있습니까? 예를 들어 응용 프로그램 당 의미합니다. –

0

나는 여전히이 문제 (.NET 4.5)가있었습니다. 내 문제는 컴퓨터가 인터넷에 연결되지 않았지만 GigE를 통해 연결된 다른 장치 (카메라 등)가 있다는 것입니다. 모든 .NET 응용 프로그램의 시작이 약 20 초 동안 지연되었습니다.

솔루션은 매우 쉬웠습니다. 컴퓨터를 인터넷에 한 번 연결하고 .NET 응용 프로그램을 시작한 후 (처음 시작하는 데 약 7 초가 소요됨) 컴퓨터를 더 이상 연결하지 않아도 모든 시작이 매우 빨랐습니다. 인터넷에. 또한 프로토콜 TCP/IP V6 (3-5 초 지연 발생)를 비활성화해야했습니다.

또 다른 가능한 해결책은 "인터넷 프로토콜 버전 4 (TCP/IPv4)를 한 후, 고급을 선택 탭을 선택" "WINS"를 설정하고 "TCP/IP NetBIOS 사용 안함을위한 속성을 선택하는 것입니다.

관련 문제