2010-07-23 4 views
0

오류 10013이 발생합니다. msdn에서 권한 거부 오류가 발생했습니다.TcpListener 소켓 오류 10013의 원인은 무엇입니까?

An attempt was made to access a socket in a way forbidden by its access permissions 

내 앱이 정상적으로 실행되었습니다. 그런 다음 코드를 변경하고 다시 시작했습니다. 그 오류가있어. 나는 포트를 재사용해야만 이것을 쓰고 행운이 없다고 생각합니다.

server.Server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1); 

이 오류를 어떻게 해결할 수 있습니까?

-edit-

나는 아마가 연결 함께 할 수있는 뭔가가 ... 나는 (많은 탭) 파이어 폭스를 닫은 경우 통지를하고 작동 프로그램을 실행? (나는 아약스와 통신했다). 나는 그것이 무엇을했는지에 관해 궁금하게 생각한다.

+0

아마도 파이어 폭스가 앱에서 얻으 려던 포트를 사용하고있었습니다. – AndrewS

답변

5

이 오류 코드는 다른 프로세스에서 독점적으로 사용중인 포트에 bind을 시도하면 발생합니다. 가장 일반적인 원인은 우연히 동일한 서비스를 두 번 시작하는 것입니다.

의심스러운 점이 있다면 netstat -a TCPView의 빠른 확인을 통해 포트가 열려있는 프로세스를 확인해야합니다.

+0

로컬/원격 ips 및 포트 (상태와 함께) 목록을 볼 수 있지만 모든 프로세스 이름을 참조하십시오. –

+0

나는 아직도 일어나지 않는 것을 말하지 않는다. 그것은 내 Winform 애플 리케이션은 여전히 ​​주소를 바인딩하는 것처럼 느껴져도 안됩니다. 참고 : 절반 시간 내가 열심히 그것을 죽일. –

+0

미안하지만, netstat가 아닌 TCPView가 있어야합니다. 답변이 업데이트되었습니다. 어떤 항구에 바인딩되어 있습니까? –

0

필자의 경우 실행 파일을 실행할 때 Delphi 응용 프로그램에서 Socket Error # 10013 Access Denied에 대한 해결책은 "관리자 권한으로 실행"이었습니다. 로컬 관리자 이외의 지역에서 정상적으로 실행되는 사람들에게는 이것이 해결책 일 수 있습니다.

0

또 다른 가능성이 수율이 오류를 수 (WCF 사용)이 같은 두 개의 엔드 포인트가 서로 다른 프로토콜을 사용하여 동일한 서버에 정의되어 시나리오 (HTTP & net.tcp 예를 들어)하지만 동일한 포트, 뭔가 :

<service name="yourService"> 
<endpoint address="http://localhost:2112/ys" binding="basicHttpBinding" name="basicHttpEndPoint" 
    contract="zza.Services.IzzaService" /> 
<endpoint address="net.tcp://localhost:**2112**/" binding="netTcpBinding" 
    name="netTcpEndPoint" contract="IyourService" /> 
<host> 
    <baseAddresses> 
    <add baseAddress="http://localhost:**2112**" /> 
    </baseAddresses> 
</host>