2012-12-11 11 views
1

IIS 5.1 (WinXP)에 WCF 서비스 (.NET 3.5)를 배포했으며 로컬 컴퓨터에서 액세스 할 수 있습니다. 그러나 로컬 컴퓨터 외부에서는 액세스 할 수 없습니다.로컬 컴퓨터 외부에서 WCF 서비스에 액세스 할 수 없습니다.

<system.serviceModel> 
    <serviceHostingEnvironment> 
    <baseAddressPrefixFilters> 
     <add prefix="http://222.22.22.222:8072/"/> 
    </baseAddressPrefixFilters> 
    </serviceHostingEnvironment> 
    <behaviors> 
    <serviceBehaviors> 
     <behavior name="Parus.ServiceBehavior"> 
     <serviceMetadata httpGetEnabled="true" httpGetUrl="http://111.1.11.111:8072/AsurReceiveData/Service.svc"/> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
     <MyInspector /> 
     </behavior> 
    </serviceBehaviors> 
    </behaviors> 
    <services> 
    <service behaviorConfiguration="Parus.ServiceBehavior" name="Parus.Service"> 
     <endpoint address="http://222.22.22.222:8072/AsurReceiveData/Service.svc" binding="basicHttpBinding" contract="Parus.IService"> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
    </service> 
    </services> 
    <extensions> 
    <behaviorExtensions> 
     <add name="MyInspector" type="Parus.MessageInspectorExtension, Parus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> 
    </behaviorExtensions> 
    </extensions> 
</system.serviceModel> 

컴퓨터의 로컬 IP 주소는 다음과 같습니다 : 111.1.11.111:8072

여기 내 web.config 파일입니다. 컴퓨터의 공용 IP 주소는 222.22.22.222:8072입니다.

내가 한 행동은 무엇입니까? IIS 5.1에 새 TCP 포트를 추가했습니다 (기본 웹 사이트 속성 -> 웹 사이트 탭 -> 고급 버튼 클릭 -> 추가 버튼 클릭 및 새 포트 추가 : 8072).

프로젝트 URL은 다음과 같습니다 : 다음과 같이

http://111.1.11.111:8072/ServiceFolder 

서비스는 같습니다

public class Service : IService 
{ 
    public const string ReplyAction = "http://222.22.22.222:8072/AsurReceiveData/Message_ReplyAction"; 
    public const string RequestAction = "http://222.22.22.222:8072/AsurReceiveData/Message_RequestAction"; 

    public Message SetData(Message requestXml) 
    { 
     using (StreamWriter writer = File.CreateText(@"Path\Body.xml")) 
     { 
      writer.WriteLine(requestXml.ToString()); 
     } 
     Message response = Message.CreateMessage(MessageVersion.Default, ReplyAction, requestXml.ToString()); 

     return response; 
    } 
} 

내가 제대로 로컬 및 공용 IP 주소를 사용하는 경우 확실하지 않다. 어쩌면 다른 것일 수도 ...

감사합니다.

+0

왜 아무도 질문에 대답하지 않습니까? – tesicg

+0

어떤 오류가 발생했는지 지정하지 않았지만 가장 먼저 확인해야 할 것은 포트 8072가 방화벽을 통해 허용된다는 것입니다. –

+0

오류 : HTTP 404, 자원을 찾을 수 없습니다. – tesicg

답변

0

모든 수신 통화를 차단하는 컴퓨터 방화벽이 있습니다. wcf 서비스를 사용하여 다른 컴퓨터와 통신 할 수 있으려면 방화벽을 끄거나 8072 포트를 열어야합니다.

+0

새 포트 8072가 방화벽의 "예외"섹션에 추가되고 선택됩니다. IIS에 배포 된 응용 프로그램의 일부 일반 페이지 (예 : 일부 .html 페이지)에 액세스 할 수 있습니다. 하지만 WCF 서비스에 액세스 할 수 없습니다. – tesicg

관련 문제