관리 메뉴

심재운 블로그

iis 상에서 WCF Service 의 Machine 이름을 domain 이름으로 대체하기 본문

닷넷관련/ASP.NET WEBFORM

iis 상에서 WCF Service 의 Machine 이름을 domain 이름으로 대체하기

재우니 2014. 10. 21. 13:16

 

 

 

 

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 상에 도메인 넣는 부분이 있습니다. 그 부분을 지정해 주시면 잘되기도 합니다.

 

 

 

 

 

0 Comments
댓글쓰기 폼