오늘 WCF 서비스를 만들고 열심히 쓰고 있었습니다. 하지만 어느 순간 클라이언트 어플리케이션은 동작을 하지 않네요. 뭔가 이것저것 코드를 추가하였는데, 알 수 없는 오류가 나타나서 저를 괴롭히더군요.
 

[그림1] WCF 가 보여주는 예외 정보
 

[그림2] WCF 가 보여주는 예외 정보
 
서버가 Faulted 상태가 되었기에, 우선은 서버 측 오류임을 예감하였습니다. 하지만 예외 정보만으로 자세한 원인을 찾기 힘들었습니다.
 
이리저리 검색하면서 이곳을 통해 WCF 가 알려주는 예외 정보는 충분히 설명적이지 않다는 것을 알게 되었고, 다른 외국 포럼에서도 동일한 예외 정보지만 전혀 다른 방법으로 해결한 내용은 그다지 저에게 도움이 되지 않았습니다.
 
일단 로컬에서 SVCUtil.EXE 를 이용하여 다시 한번 Proxy 코드를 생성해 보았습니다. 그전에 띄워놓고 있던 CMD 창이 있어서 아무 생각 없이 다시 실행시켜 봤을 뿐이랍니다. ^^;
 
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
 
C:\경로는 생략>svcutil http://localhost/Dx-HTTP-WCF-NETFx3/POCServiceNETFx3.svc
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, 버전 3.0.4506.2152]
Copyright (c) Microsoft Corporation. All rights reserved.
 
WS-Metadata Exchange 또는 DISCO를 사용하여 'http://localhost/Dx-HTTP-WCF-NETFx3/
POCServiceNETFx3.svc'에서 메타데이터를 다운로드하고 있습니다.
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, 버전 3.0.4506.2152]
Copyright (c) Microsoft Corporation. All rights reserved.
 
오류: http://localhost/Dx-HTTP-WCF-NETFx3/POCServiceNETFx3.svc에서 메타데이터를
가져올 수 없습니다.
 
액세스 권한이 있는 Windows (R) Communication Foundation 서비스일 경우 지정한 주
소에서 메타데이터 게시를 사용하도록 설정했는지 확인하십시오. 메타데이터 게시 설
정에 대한 도움말을 보려면 http://go.microsoft.com/fwlink/?LinkId=65455의 MSDN 설
명서를 참조하십시오.
 
 
WS-Metadata Exchange 오류
    URI: http://localhost/Dx-HTTP-WCF-NETFx3/POCServiceNETFx3.svc
 
    메타데이터에 확인할 수 없는 참조가 포함되었습니다. 'http://localhost/Dx-HTTP
-WCF-NETFx3/POCServiceNETFx3.svc'.
 
    응답 메시지의 콘텐츠 형식 text/html; charset=utf-8이(가) 바인딩의 콘텐츠 형
식(application/soap+xml; charset=utf-8)과 일치하지 않습니다. 사용자 지정 인코터
를 사용 중인 경우 IsContentTypeSupported 메서드가 올바르게 구현되는지 확인하십시
오. 응답의 처음 1024바이트가 '<html>
    <head>
        <title>구성 오류</title>
        <style>
         body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:bl
ack;}
         p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5p
x}
         b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
 
         H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red
}
         H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maro
on }
         pre {font-family:"Lucida Console";font-size: .9em}
         .marker {font-weight: bold; color: black;text-decoration: none;}
         .version {color: gray;}
         .error {margin-bottom: 10px;}
         .expandable { text-decoration:underline; font-weight:bold; color:navy;
cursor:hand; }
        </style>
    </head>
 
    <body bgcolor="white">
 
            <span><H1>'/Dx-HTTP-WCF-NETFx3' 응용 프로그램에 서버 오류가 있습니다
.<hr width=100% size=1 color=silver></H1>
 
            <h2>'입니다.
 
    원격 서버에서 (500) 내부 서버 오류 오류를 반환했습니다.
 
 
HTTP GET Error
    URI: http://localhost/Dx-HTTP-WCF-NETFx3/POCServiceNETFx3.svc
 
   'http://localhost/Dx-HTTP-WCF-NETFx3/POCServiceNETFx3.svc'을(를) 다운로드하
는 동안 오류가 발생했습니다.
 
    다음 오류 메시지로 인해 요청하지 못했습니다.
--
<html>
    <head>
        <title>구성 오류</title>
        <style>
         body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:bl
ack;}
         p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5p
x}
         b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
 
         H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red
}
         H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maro
on }
         pre {font-family:"Lucida Console";font-size: .9em}
         .marker {font-weight: bold; color: black;text-decoration: none;}
         .version {color: gray;}
         .error {margin-bottom: 10px;}
         .expandable { text-decoration:underline; font-weight:bold; color:navy;
cursor:hand; }
        </style>
    </head>
 
    <body bgcolor="white">
 
            <span><H1>'/Dx-HTTP-WCF-NETFx3' 응용 프로그램에 서버 오류가 있습니다
.<hr width=100% size=1 color=silver></H1>
 
            <h2> <i>구성 오류</i> </h2></span>
 
            <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">
 
 
            <b> 설명: </b>이 요청을 제공하는 데 필요한 구성 파일을 처리하는 동안
 오류가 발생했습니다. 아래의 오류 정보를 확인한 다음 구성 파일을 적절하게 수정하
십시오.
            <br><br>
 
            <b> 파서 오류 메시지: </b>신뢰 수준 'full'의 보안 정책 파일을 읽을
수 없습니다.<br><br>
 
            <b>소스 오류:</b> <br><br>
 
            <table width=100% bgcolor="#ffffcc">
               <tr>
                  <td>
                      <code><pre>
 
[관련된 소스 줄 없음]</pre></code>
 
                  </td>
               </tr>
            </table>
 
            <br>
 
            <b> 소스 파일: </b> <b> ?? 줄: </b> 0
            <br><br>
 
            <hr width=100% size=1 color=silver>
 
            <b>버전 정보:</b>?Microsoft .NET Framework 버전:2.0.50727.3074; ASP.
NET 버전:2.0.50727.3074
 
            </font>
 
    </body>
</html>
<!--
[ConfigurationErrorsException]: 신뢰 수준 'full'의 보안 정책 파일을 읽을 수 없습
니다.
   위치: System.Web.HttpRuntime.SetTrustLevel(TrustSection trustSection, Securit
yPolicySection securityPolicySection)
   위치: System.Web.HttpRuntime.HostingInit(HostingEnvironmentFlags hostingFlags
)
[HttpException]: 신뢰 수준 'full'의 보안 정책 파일을 읽을 수 없습니다.
   위치: System.Web.HttpRuntime.FirstRequestInit(HttpContext context)
   위치: System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)
   위치: System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequ
est wr, HttpContext context)
-->
--.
 
자세한 정보를 보려면 "svcutil /?"을(를) 입력하십시오.
 
C:\경로는 생략>
 
네 그랬습니다 ㅠ
 
서버의 도메인 Security 만으로 로깅 작업을 할 수 없었기 때문에 Security 권한을 Full 로 준 것이 화근이었습니다.
 

[그림3] config 의 열거형을 소문자로 쓰면 대략 난감^^;
 

[그림4] 반드시 대문자로…
 
Config 파일의 열거형 타입은 대소문자를 구분하는 경우가 대부분인데, 이런 실수는 대략 안타까운 경우였습니다.

'.NET > WCF' 카테고리의 다른 글

WCF 성능 향상 팁  (2) 2009.11.20
WCF 의 불친절한 ProtocolException  (0) 2009.03.07
Posted by 땡초 POWERUMC
TAG

댓글을 달아 주세요