심재운 블로그

 

 

 

 

WCF 에서 도메인이나 IP 주소로 나오지 않고, 아래와 같이 MACHINE 이름으로 표기되는 이슈가 발생되었습니다. 왜 WCF 서비스인 wsdl 의 링크에 도메인 명이 아닌, machine 이름으로 표기될까?에 대해 여러 forum 에 질문을 해봤습니다. 이 문제는 WCF 서비스를 IIS 상에 호스팅 할때 발생, WSDL 링크는 로컬 machine 이름으로 표기된다는 점입니다.

 

 

 

image 

 

 

 

 

이를 해결하기 위해 확인한 결과, serviceMetadata  의 hehavior 를 변경하는 건데요. 이를 변경하기 위해선 httpGetUrl 또는 httpsGetUrl 을 명시할 metadata 위치가 무엇인지 명시해 줘야 합니다. 그래서 이래처럼 url 에 도메인 주소를 추가하였습니다.

 

 

 

 

<system.serviceModel>
<services>
<service name="Demo.Service.MultiEndPointsService" behaviorConfiguration="serviceBehaviour">
<endpoint address="basic" binding="basicHttpBinding" bindingConfiguration="basicBinding"  
contract="Demo.Service.MultiEndPointsService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="serviceBehaviour">
<serviceMetadata httpGetEnabled="true"
httpGetUrl="http://192.168.3.61/Demo.Service/MultiEndPointsService.svc/basic" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="basicBinding" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None"></security>
<readerQuotas maxStringContentLength="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
</
system.serviceModel>

 

 

 

 

httpGetUrl 값에 ip 주소를 명시한것을 보실 수 있습니다.

 

 

image 

 

 

이제 브라우저에서 이를 실행해 볼까요?

 

 

 

image

 

 

위처럼 안되면 iis 상에 도메인 넣는 부분이 있습니다. 그 부분을 지정해 주시면 잘되기도 합니다.

 

 

 

 

 

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band

본문과 관련 있는 내용으로 댓글을 남겨주시면 감사하겠습니다.

비밀글모드