[c#] WCF 오류- ‘UserService.UserService’계약을 참조하는 기본 끝점 요소를 찾을 수 없습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

UserService.UserServiceClient userServiceClient = new UserServiceClient();
            userServiceClient.GetUsersCompleted += new EventHandler<GetUsersCompletedEventArgs>(userServiceClient_GetUsersCompleted);
            userServiceClient.GetUsersAsync(searchString);

.

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_UserService" 
                     maxBufferSize="2147483647" 
                     maxReceivedMessageSize="2147483647">
                <security mode="None" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://localhost:52185/UserService.svc" 
                  binding="basicHttpBinding" 
                  bindingConfiguration="BasicHttpBinding_UserService" 
                  contract="UserService.UserService"
                  name="BasicHttpBinding_UserService" />
    </client>
    <behaviors>
        <serviceBehaviors>
            <behavior name="Shell.Silverlight.Web.Service3Behavior">
                <serviceMetadata httpGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <services>
        <service behaviorConfiguration="Shell.Silverlight.Web.Service3Behavior" 
                 name="Shell.Silverlight.Web.Service3">
            <endpoint address="" 
                      binding="basicHttpBinding" 
                      contract="Shell.Silverlight.Web.Service3" />
            <endpoint address="mex" 
                      binding="mexHttpBinding" 
                      contract="IMetadataExchange" />
        </service>
    </services>
</system.serviceModel>

ServiceModel 클라이언트 구성 섹션에서 ‘UserService.UserService’계약을 참조하는 기본 끝점 요소를 찾을 수 없습니다. 이는 응용 프로그램에 대한 구성 파일이 없거나이 계약과 일치하는 끝점 요소가 클라이언트 요소에서 찾을 수 없기 때문일 수 있습니다.

해결되었습니다!

나는 이것이 Silverlight 응용 프로그램이라고 언급하지 않았습니다. 자체 “ServiceReferences.ClientConfig”파일이있는 DLL에 wcf 참조가 있습니다. DLL의 ServiceReferences.ClientConfig의 내용을 주요 silverlight 프로젝트로 옮겼습니다.



답변

나는 같은 문제로 뛰어 들었다. 내 응용 프로그램도 Silverlight 응용 프로그램이었고 서비스가 사용중인 사용자 지정 UserControl이있는 클래스 라이브러리에서 호출되었습니다.

해결책은 간단합니다. 클래스 라이브러리의 구성 파일 (예 : ServiceReferences.ClientConfig)에서 엔드 포인트 정의를 silverlight 애플리케이션의 구성 파일로 복사하십시오. 이 작업을 수행하지 않아도 작동 할 것으로 예상 할 수 있지만 레드몬드의 누군가가 그날 휴가를 보냈습니다.


답변

이러한 값을 클래스 라이브러리에서 프로그래밍 방식으로 설정할 수도 있습니다. 이렇게하면 라이브러리에서 구성 파일의 불필요한 이동을 방지 할 수 있습니다. 간단한 BasciHttpBinding의 예제 코드는 다음과 같습니다.

BasicHttpBinding basicHttpbinding = new BasicHttpBinding(BasicHttpSecurityMode.None);
basicHttpbinding.Name = "BasicHttpBinding_YourName";
basicHttpbinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
basicHttpbinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;

EndpointAddress endpointAddress = new EndpointAddress("http://<Your machine>/Service1/Service1.svc");
Service1Client proxyClient = new Service1Client(basicHttpbinding,endpointAddress);


답변

WPF 또는 Silverlight 대신 WPF를 사용하는 동안 누군가가 동일한 문제를 겪는 경우를 대비하여 :

웹 서비스에 연결할 때이 오류가 발생했습니다. 내 코드가 “기본”WPF 응용 프로그램 솔루션에 있었을 때 문제없이 완벽하게 작동했습니다. 그러나 코드를 더 합리적인 DAL 계층 솔루션으로 옮겼을 때 예외가 발생했습니다.

ServiceModel 클라이언트 구성 섹션에서 ‘MyWebService.MyServiceSoap’계약을 참조하는 기본 끝점 요소를 찾을 수 없습니다. 이는 응용 프로그램에 대한 구성 파일이 없거나이 계약과 일치하는 끝점 요소가 클라이언트 요소에서 찾을 수 없기 때문일 수 있습니다.

이 스레드의 “Sprite”에서 설명한 것처럼 태그를 수동으로 복사해야합니다.

WPF 앱의 경우 이는 내 DAL 솔루션의 app.config 에서 기본 WPF 애플리케이션 솔루션 의 app.config 로 태그를 복사하는 것을 의미 합니다.


답변

서비스를 처음 추가했을 때 Visual Studio가 웹 구성을 업데이트하지 않은 이유가 무엇이든 동일한 문제가 발생했습니다. 서비스 참조를 업데이트해도이 문제가 해결된다는 것을 알았습니다.

단계 :

  1. 서비스 참조 폴더로 이동
  2. 확장
  3. 마우스 오른쪽 버튼을 클릭하고 업데이트 서비스 참조를 선택합니다.
  4. 웹 구성 업데이트 관찰

답변

WCF 서비스의 web.config를 “endpoint address =” “binding =”basicHttpBinding “…”(이전의 binding = “wsHttpBinding”)으로 변경합니다. 앱을 빌드 한 후 “ServiceReferences.ClientConfig” “”configuration>에 값이 있습니다. . 그러면 잘 작동합니다.


답변

svcutil.exe에서 생성 한 output.config의 이름을 app.config로 바꿉니다. 그것은 나를 위해 일했습니다.


답변

“UserService”클래스가 구현하는 인터페이스가 있습니까?

엔드 포인트는 계약 속성에 대한 인터페이스를 지정해야합니다.

contract="UserService.IUserService"