Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

[질문 원글: http://mblog.devpia.com/link/?no=2114383]

WCF를 구축하는데요...클라이언트는 다음과 같이 구현했습니다.

 

public ref class ClientComp : IClientComp
 {
  // TODO: 여기에 이 클래스에 대한 메서드를 추가합니다.
 public :
  virtual void Connect() {
   try
   {
    WSHttpBinding^ binding = gcnew WSHttpBinding();
    String^ url = "http://localhost:8088/WebService";
    EndpointAddress^ address = gcnew EndpointAddress(url);
    ChannelFactory<IWebService^>^ channelFactory = gcnew ChannelFactory<IWebService^>(binding, address);

    m_channel = channelFactory->CreateChannel();
    m_channel->Connect(); //여기까지는 잘됩니다.
   }
   catch(Exception^ e){
    Console::WriteLine(e->Message);
   }
  }

 

  virtual void Disconnect() {
   if (m_channel != nullptr) {
    m_channel->Disconnect();
    ((IChannel^)m_channel)->Close();
   }
  }

 

  virtual void Insert(String^ Id,String^ passwd, String^ Name){
   Person^ p = gcnew Person();
   p->ID = Id;
   p->Passwd = passwd;
   p->Name = Name;

   m_channel->InsertMember(p); //이 함수도 호출이 되어 잘 실행됩니다.
  }

 

  virtual void Update(String^ Id,String^ passwd, String^ Name){
   Person^ p = gcnew Person();
   p->ID = Id;
   p->Passwd = passwd;
   p->Name = Name;

   m_channel->UpdateMember(p);
  }

 

  virtual void Delete(String^ Id,String^ passwd, String^ Name){
   Person^ p = gcnew Person();
   p->ID = Id;
   p->Passwd = passwd;
   p->Name = Name;

   m_channel->DeleteMember(p);
  }

 

  virtual ArrayList^ Select(String^ Id,String^ passwd, String^ Name){
   Person^ p = gcnew Person();
   if(Id == nullptr ) {
    p = nullptr;
   }
   else {
    p->ID = Id;
    p->Passwd = passwd;
    p->Name = Name;
   }
   
   return m_channel->SelectMember(p); //여기서 예외가 발생하는것 같습니다---(1).
  }

 

 private :
  IWebService^ m_channel; // IWebService는 엔드포인트 인터페이스 입니다.
 };
}

 

서버는 다음 어플이 구동합니다.

 

#include "stdafx.h"

 

using namespace System;
using namespace System::ServiceModel;
using namespace WebService;

 

int main(array<System::String ^> ^args)
{
    WSHttpBinding^ binding = gcnew WSHttpBinding();
    Uri^ baseAddress = gcnew Uri("http://localhost:8088/WebService");

    ServiceHost^ servicehost = gcnew ServiceHost(WebServiceImple::typeid, baseAddress);
    servicehost->AddServiceEndpoint(IWebService::typeid, binding, baseAddress);

    servicehost->Open();
    Console::WriteLine("The service is running...");

    Console::ReadLine();
    servicehost->Close();

    delete servicehost;

    return 0;
}

 

엔드포인트 인터페이스는 다음과 같습니다.

 

namespace WebService {

 [ServiceContract]
 public interface class IWebService {
    
  [OperationContract]
  void Connect();
  
  [OperationContract]
  void Disconnect();

 

....

 

그런데 (1)에서 System.ServiceModel.CommunicationException 예외가 발생합니다. 메세지는 아래와 같습니다.

 

 

처리되지 않은 'System.ServiceModel.CommunicationException' 형식의 예외가 mscorlib.dll에서 발생했습니다.

 

추가 정보: http://localhost:8088/WebService에 대한 HTTP 응답을 수신하는 동안 오류가 발생했습니다. 이것은 서비스 끝점 바인딩에서 HTTP 프로토콜을 사용하지 않기 때문일 수 있습니다. 또한 서비스 종료로 인해 서버가 HTTP 요청 컨텍스트를 중단하는 중이기 때문일 수 있습니다.

 

바인딩을 바꿔주어야 할까요? 이유가 뭔지 모르겠네요..쩝 -_-

 

고수님의 도움을 청합니다. 꾸벅(_ _)

 

좋은 하루 되시구요..^^








[최초 등록일: ]
[최종 수정일: 11/17/2011]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

비밀번호

댓글 작성자
 




[1]  2  3  4  5 
NoWriterDateCnt.TitleFile(s)
140정성태11/17/20118092[질문] ArrayList 를 반환하는 WCF 메서드의 경우 System.ServiceModel.CommunicationException 예외 생성
141정성태11/17/20116325    답변글 [답변]: ServiceKnownType을 명시해 보세요.
138정성태11/17/20115588[질문] backgroundWorker 안에서 Timer 안도나요
139정성태11/17/20115497    답변글 [답변]: Invoke 로 호출해 보세요.
133정성태10/1/20076749[질문] ASP 의 ByVal 과 ByRef 특성
134정성태10/1/20078880    답변글 [답변]: ASP 의 ByVal 과 ByRef 특성
129정성태5/1/20077384[질문] C# COM Server에서 C++ Client에게 string맴버 포함한 구조체 배열 넘기기)
130정성태5/1/20078269    답변글 [답변]: C# COM Server에서 C++ Client에게 string맴버 포함한 구조체 배열 넘기기)
126정성태8/4/20066877[외부] Debugging When Property Reads Have Side Effects
124정성태7/29/20066924[질문] IE프로그래밍 관련하여 질문이
125정성태7/29/20067128    답변글 [답변]: IE프로그래밍 관련하여 질문이
122정성태7/29/20067159[질문] 어떤식으로 프로그램을 짜야 singlecall이고 singleton인가요?
123정성태7/29/20066752    답변글 [답변]: 활성 모드의 차이인데요...
120정성태7/29/20067220[질문] "주석 웹페이지 빌드" 2005 에 어디 있나요?
121정성태7/29/20066587    답변글 [답변]: Web Site Project 유형에서는 제공되지 않습니다.
118정성태7/29/20068038[질문] 웹서비스에 대한 몇가지 질문.. [1]
119정성태7/29/20066873    답변글 [답변]: 아는 데로 답변을 드리면.
116정성태7/29/20067753[질문] SmartClient에서 Server.UrlDecode를 사용할 수 있을까요?(한글쿠키문제)
117정성태7/29/20066849    답변글 [답변]: 한글 문제 때문이라면...
114정성태7/29/20067221[질문] 빌드와 리빌드의 차이가 뭡니까?
115정성태7/29/200611204    답변글 [답변]: [질문] 빌드와 리빌드의 차이가 뭡니까?
112정성태7/29/20066743[질문] ObjectDataSource에서 파라메터가 있는 생성자 호출법??
113정성태7/29/20067008    답변글 [답변]: 물론 있을테죠. ^^
110정성태7/29/20067768[질문] 접두사를 포합한 XML을 읽을려고 합니다~
111정성태7/29/20067975    답변글 [답변]: 정형화된 틀이 있습니다.
[1]  2  3  4  5