기본 엔드 포인트 요소를 찾을 수 없습니다


369

VS2008 / .NET 3.5 솔루션의 웹 서비스에 프록시를 추가했습니다. 클라이언트 .NET을 구성 할 때이 오류가 발생합니다.

ServiceModel 클라이언트 구성 섹션에서 계약 'IMySOAPWebService'를 참조하는 기본 엔드 포인트 요소를 찾을 수 없습니다. 애플리케이션에 대한 구성 파일이 없거나 클라이언트 요소에서이 계약과 일치하는 엔드 포인트 요소가 없기 때문일 수 있습니다.

이 오류를 검색하면 계약에서 전체 네임 스페이스를 사용하라는 메시지가 나타납니다. 전체 네임 스페이스가있는 app.config는 다음과 같습니다.

<client>
  <endpoint address="http://192.168.100.87:7001/soap/IMySOAPWebService"
            binding="basicHttpBinding" bindingConfiguration="IMySOAPWebServicebinding"
            contract="Fusion.DataExchange.Workflows.IMySOAPWebService" name="IMySOAPWebServicePort" />
</client>

XP 로컬을 실행 중입니다 (많은 Google 적중이 win2k3을 언급했기 때문에 이것을 언급했습니다) .app.config가 app.exe.config에 복사되므로 문제가되지 않습니다.

단서가 있습니까?


웹 서버에서 실행중인 경우 .svc를 추가해야합니다. 예 : " 192.168.100.87:7001/soap/IMySOAPWebService.svc
Darren C

서비스는 .NET 서비스가 아니며 웹 서버에서 실행되고 있지 않습니다.
edosoft

.NET에서 개발 된 프로젝트 에서이 문제를 해결했지만 VB6에 일부 프로젝트가 있으며 동일한 문제가 있습니다. 어떤 아이디어?
Gabriel Intriago

답변:


588

"이 오류는 클래스 라이브러리에서 서비스를 호출하고 다른 프로젝트에서 클래스 라이브러리를 호출하는 경우 발생할 수 있습니다."

이 경우 winapp 인 경우 기본 프로젝트 app.config 또는 웹앱 인 경우 web.config에 WS 구성 설정을 포함해야합니다. 이것이 PRISM 및 WPF / Silverlight에서도 가능합니다.


1
이것은 내 특정 문제의 원인은 아니지만 다른 사람들에게 도움이 될 것이라고 확신합니다. 감사합니다
edosoft

9
둘을 자동으로 병합하는 방법이 있습니까? 클래스 라이브러리가 구성을 업데이트하면 어떻게됩니까? 참조하는 모든 프로젝트에서 복사 된 구성 정보를 업데이트해야한다는 사실을 기억하고 있습니까? 이 수정 프로그램은 ... 개발자의 경계에 너무 많이 의존하는 것
숀 헨리

1
WP7 앱 (Silverlight 믿습니다)에 대해 동일한 오류 ServiceReferences.ClientConfig가 발생하고 프로젝트 디렉토리에서 생성되는 것을 알기에는 너무 오래 걸렸습니다 . 내 라이브러리의 파일에서 <bindings><client>요소를 이전에 비어 있던 기본 앱으로 복사하면 작동합니다.
David Mason

4
이것이 발생하는 이유는 (내가 이해하는 것처럼) 웹, winforms, wpf 등 솔루션의 기본 프로젝트에서 구성 값을 읽었 기 때문입니다. 예를 들어 데이터베이스에 액세스하는 클래스 라이브러리 프로젝트, connectionString 항목이 있다고 가정하십시오. 클래스 라이브러리 구성이 아닌 기본 프로젝트 구성에 있어야합니다.
Ciaran Bruen

6
따라서 라이브러리에서 WCF를 사용하는 경우 표시된 링크 stackoverflow.com/questions/7688798/… 과 같은 설정을 직접 코딩하는 것이 좋습니다 .
영재

90

바인딩 및 엔드 포인트 주소 인스턴스를 직접 만들어서이 문제를 해결했습니다 (다른 사람들이 제안한 것처럼 생각합니다). 설정 파일에 새 설정을 추가하고 싶지 않기 때문에 (이것은 널리 사용되는 기존 라이브러리 코드를 대체합니다. 이전에는 이전 웹 서비스 참조 등을 사용 했으므로 새 구성 설정을 어디에나 추가하지 않고도이 기능을 추가 할 수 있기를 원했습니다.

var remoteAddress = new System.ServiceModel.EndpointAddress(_webServiceUrl);

using (var productService = new ProductClient(new System.ServiceModel.BasicHttpBinding(), remoteAddress))
{
    //set timeout
    productService.Endpoint.Binding.SendTimeout = new TimeSpan(0,0,0,_webServiceTimeout);

    //call web service method
    productResponse = productService.GetProducts();
} 

편집하다

https를 사용 BasicHttpsBinding하는 경우 대신 을 사용해야 BasicHttpBinding합니다.


1
이것은 유용한 답변입니다. 내가 사용하는 웹 서비스에서 사용자 정의 끝점은 객체의 초기 선언에 바인딩되어야했습니다. 나중에 시도하면 작동하지 않습니다.
Paul Morel

2
최고의 답변이 트릭을 수행했을 것으로 생각되는만큼 솔루션이 효과가 있었고 내 구성 파일을 함께 해킹하는 것이 바람직합니다.
Sam 나는 오전

매력을 발휘합니다! 내 앱에 "app.config"파일을 배포하는 대신 코드로 엔드 포인트를 설정할 수있는 것이 좋습니다.
Daniel Gee 2013 년

1
Https 웹 서비스 인 경우 BasicHttpBinding ()을 BasicHttpsBinding ()으로 변경해야합니다.
Anthony

이 솔루션은 app.config 또는 web.config가없는 EXCEL-DNA와 같은 응용 프로그램에 가장 적합합니다.
user781700 2016 년

75

몇 가지 옵션을 테스트 한 결과 마침내이를 사용하여이 문제를 해결했습니다.

contract = "IMySOAPWebService"

즉, 구성에 전체 네임 스페이스가 없습니다. 어떤 이유로 전체 이름이 제대로 확인되지 않았습니다


3
계약 명은 고객과 동일한 방식으로 정확하게 작성되어야합니다. 제 경우에는 var proxy = new ExternalServices.ServiceClient("MyServiceEndpoint");계약에 네임 스페이스를 추가했을 때 작동했습니다.contract="ExternalServices.IMyService"
Anatoly Mironov

이것은 나를 위해 작동하지 않았다. 내 문제는 약간 다를 수 있습니다. 이 오류가 항상 그렇지는 않습니다. 문제가 될 수 있습니다. 서비스 측에 오류가있을 수 있습니까? _ 감사합니다
albatross

57

나는이 같은 문제가 있었다. 웹 참조의 경우 생성자에 첫 번째 매개 변수로 URL을 제공해야합니다.

new WebService.WebServiceSoapClient("http://myservice.com/moo.aspx");

새로운 스타일의 웹 서비스 참조의 경우 구성에서 엔드 포인트 항목을 나타내는 이름을 제공해야합니다.

new WebService.WebServiceSoapClient("WebServiceEndpoint");

에 해당하는 항목으로 Web.config또는 App.config:

<client>
      <endpoint address="http://myservice.com/moo.aspx"
        binding="basicHttpBinding" 
        bindingConfiguration="WebService"
        contract="WebService.WebServiceSoap"
        name="WebServiceEndpoint" />
    </client>
  </system.serviceModel>

"이전 프로그램에서 작동했습니다"에 대한 터널 비전을 제거하기가 매우 어렵습니다 ...


3
아하! 이것은 나를 위해 고쳤습니다. 전에 빈 생성자를 사용하고 있었고 계속 실패했습니다. // fail
트래비스

이 solutin은 효과가 있었다! !! 그러나 기본 끝 점이로드되지 않은 이유가 궁금합니다. 이유가 될 수있는 아이디어가 있습니까?
Dipti Mehta

@Andomar는 오래된 실을 가져 와서 죄송합니다. WebReference 및 ServiceReference 중 하나가 다른 것보다 유리합니까? 나는 전자가 나에게 더 편리 할 것이라고 생각하지만 ServiceReference는 내가 생각하는 멋진 새 것입니다.
Kev

17

나는 이런 상황을 겪었다.

  • 어딘가에서 호스팅되는 WCF 서비스
  • 주요 프로젝트
  • WCF 서비스에 대한 서비스 참조가있는 '클래스 라이브러리'유형의 소비자 프로젝트
  • 주요 프로젝트는 소비자 프로젝트의 메소드를 호출

이제 소비자 프로젝트는 모든 관련 구성 설정을 <system.serviceModel> app.config의 Tag에 이 있었으며 여전히 위와 동일한 오류가 발생했습니다.

내가 한 모든 <system.serviceModel>것은 내 주요 프로젝트의 app.config 파일에 동일한 태그 를 추가 하고 마지막으로 우리는 갈 수있었습니다.

필자의 경우 실제 문제는 잘못된 구성 파일을 읽는 것입니다. 소비자의 app.config 대신 기본 proj의 구성을 참조했습니다. 그것을 알아내는 데 2 ​​시간이 걸렸습니다.


1
같은. <system.serviceModel>라이브러리에서 검색 한 다음 기본 응용 프로그램의 app.config에 복사하십시오. 런타임에 클래스 라이브러리 app.configs의 또 다른 증상이 읽히지 않습니다. 나는이 감독 (imo)을 보상하기 위해 sooooo 많은 시간을 보냅니다. 라이브러리가 app.config에서 구성을 읽도록하려면 그대로 두십시오. 그렇지 않으면 왜 클래스 라이브러리에 대한 app.config가 처음입니까?
SteveCinq

15

"이 오류는 클래스 라이브러리에서 서비스를 호출하고 다른 프로젝트에서 클래스 라이브러리를 호출하는 경우 발생할 수 있습니다."

"이 경우 winapp 인 경우 기본 프로젝트 app.config에 웹 구성 인 경우 web.config 인 WS 프로젝트 설정에 WS 구성 설정을 포함해야합니다. 이는 PRISM 및 WPF / Silverlight에서도 사용할 수있는 방법입니다."

예. 그러나 주 프로젝트 (예 : 오차드 CMS)를 변경할 수없는 경우 프로젝트에서 WCF 서비스 구성을 유지할 수 있습니다.

클라이언트 생성 방법으로 서비스 헬퍼를 작성해야합니다.

public static class ServiceClientHelper
{
    public static T GetClient<T>(string moduleName) where T : IClientChannel
    {
        var channelType = typeof(T);
        var contractType = channelType.GetInterfaces().First(i => i.Namespace == channelType.Namespace);
        var contractAttribute = contractType.GetCustomAttributes(typeof(ServiceContractAttribute), false).First() as ServiceContractAttribute;

        if (contractAttribute == null)
            throw new Exception("contractAttribute not configured");

        //path to your lib app.config (mark as "Copy Always" in properties)
        var configPath = HostingEnvironment.MapPath(String.Format("~/Modules/{0}/bin/{0}.dll.config", moduleName)); 

        var configuration = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap { ExeConfigFilename = configPath }, ConfigurationUserLevel.None);
        var serviceModelSectionGroup = ServiceModelSectionGroup.GetSectionGroup(configuration);

        if (serviceModelSectionGroup == null)
            throw new Exception("serviceModelSectionGroup not configured");

        var endpoint = serviceModelSectionGroup.Client.Endpoints.OfType<ChannelEndpointElement>().First(e => e.Contract == contractAttribute.ConfigurationName);
        var channelFactory = new ConfigurationChannelFactory<T>(endpoint.Name, configuration, null);
        var client = channelFactory.CreateChannel();
        return client;
    }
}

그것을 사용하십시오 :

using (var client = ServiceClientHelper.GetClient<IDefaultNameServiceChannel>(yourLibName)) {
                ... get data from service ...
            }

이 기사의 세부 사항을 참조 하십시오 .


15

클래스 파일에서 서비스를 참조하는 마음이 모호하게 모호한 오류에 직면했을 때 여기에 몇 가지 응답이 올바른 솔루션에 부딪 쳤습니다. 서비스 구성 정보를 콘솔 또는 Windows 앱의 app.config web.config에 복사하십시오. 그 대답 중 어느 것도 당신에게 무엇을 복사 해야하는지 보여주지 않는 것 같습니다. 그것을 시도하고 수정합시다.

다음은 "TranslationServiceOutbound"라는 서비스에 대한이 미친 오류를 해결하기 위해 클래스 라이브러리의 구성 파일에서 콘솔 앱의 구성 파일로 복사 한 내용입니다.

기본적으로 system.serviceModel 섹션 내부의 모든 것을 원합니다 .

  <system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_ITranslationServiceOutbound" />
  </basicHttpBinding>
</bindings>
<client>
  <endpoint address="http://MyHostName/TranslationServiceOutbound/TranslationServiceOutbound.svc"
    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ITranslationServiceOutbound"
    contract="TranslationService.ITranslationServiceOutbound" name="BasicHttpBinding_ITranslationServiceOutbound" />
</client>


14

이것은 나를 미치게했다.

WCF와 함께 Silverlight 3 Prism (CAB)을 사용하고 있습니다.

Prism 모듈에서 WCF 서비스를 호출하면 동일한 오류가 발생합니다.

서비스 모델 클라이언트 구성 섹션에서 계약 'IMyService'를 참조하는 기본 엔드 포인트 요소를 찾을 수 없습니다. 애플리케이션에 대한 구성 파일이 없거나 클라이언트 요소에서이 계약과 일치하는 엔드 포인트 요소가 없기 때문일 수 있습니다.

모듈의 ServiceReferences.ClientConfig 파일이 아니라 Shell의 .xap 파일에서 ServiceReferences.ClientConfig 파일을 찾는 것으로 나타났습니다. 내 Silverlight Shell 응용 프로그램의 기존 ServiceReferences.ClientConfig 파일에 끝점과 바인딩을 추가했습니다 (자체 WCF 서비스라고 함).

그런 다음 웹 프로젝트의 ClientBin 폴더에 대한 새 .xap 파일을 생성하기 위해 Shell 앱을 다시 빌드해야했습니다.

이제이 코드 줄이 마침내 작동합니다.

MyServiceClient myService = new MyServiceClient();

11

WCF 서비스가 bin 폴더의 참조 .dll 파일로 ASP.NET 응용 프로그램에 추가되는 클래스 라이브러리에 추가 된 ASP.NET 응용 프로그램 에서이 오류가 발생했습니다. 오류를 해결하려면 WCF 서비스를 참조하는 클래스 라이브러리 내의 app.config 파일의 구성 설정을 ASP.NET 사이트 / 앱의 web.config 설정으로 복사해야했습니다.


다른 답변도 같은 문제를 설명했을 수 있습니다. 이 답변은 내 정확한 상황을 설명하고 마침내 문제를 이해했습니다. 내 하루가 절약 주셔서 감사합니다
WOUTER Vanherck을

10

클래스 라이브러리 인터페이스를 사용하면서 클라이언트 UI의 App.config에 복사하는 것 외에도 바인딩의 이름 앞에 서비스 참조 이름을 붙여야한다는 것을 알았습니다 ( ServiceReference아래 는 광산 에 있습니다).

예 :

<endpoint address="http://localhost:4000/ServiceName" binding="basicHttpBinding"
      bindingConfiguration="BasicHttpBinding_ISchedulerService"
      contract="ServiceReference.ISchedulerService" 
      name="BasicHttpBinding_ISchedulerService" />

기본적으로 생성되는 대신 :

<endpoint address="http://localhost:4000/ServiceName" binding="basicHttpBinding"
      bindingConfiguration="BasicHttpBinding_ISchedulerService"
      contract="ISchedulerService" 
      name="BasicHttpBinding_ISchedulerService" />

1
나는 똑같은 일을해야했다. 나는 왜 그런지 이해하지 못한다.
Brig

8

나는 같은 문제가 있었지만 계약 네임 스페이스를 변경해도 효과가 없었습니다. 그래서 .Net 3.5 서비스 참조 대신 .Net 2 스타일 웹 참조를 시도했습니다. 효과가있었습니다.

Visual Studio 2008에서 웹 참조를 사용하려면 '서비스 참조 추가'를 클릭 한 다음 대화 상자가 나타나면 '고급'을 클릭하십시오. 서비스 참조 대신 웹 참조를 사용할 수있는 옵션이 있습니다.


2
이것이 내가 결국 한 일입니다. 문제가 이해되기를 바랍니다.
Jarrett Widman

이것은 또한 나를 위해 일했습니다. 이제 나는이 모든 여분의 정크를 솔루션 (Settings.Settings, 새로운 웹 참조 폴더)에 정당한 이유없이 가지고 있습니다. 시간이 더 있으면 다시 와서 다시 방문해야합니다.
Mike K

동의했다. 나는 같은 문제가 있었고 그것을 웹 참조로 변경하여 고쳤다.
Stephen Hosking

7

서비스를 사용하는 비 라이브러리 응용 프로그램을 단위 테스트하면이 문제가 발생할 수 있습니다.

다른 사람들이 입력 한 정보는 근본 원인을 해결합니다. 자동화 된 테스트 사례를 작성하려고하는데 테스트중인 장치가 실제로 서비스 인터페이스를 호출하는 경우 테스트 프로젝트에 서비스 참조를 추가해야합니다. 이것은 라이브러리 유형의 오류를 사용하는 응용 프로그램의 특징입니다. 인터페이스를 소비하는 코드가 라이브러리에 없기 때문에 즉시 이것을 인식하지 못했습니다. . 그러나 테스트가 실제로 실행될 때는 테스트중인 어셈블리가 아니라 테스트 어셈블리에서 실행됩니다.

단위 테스트 프로젝트에 서비스 참조를 추가하면 문제가 해결되었습니다.


7

단위 테스트에서 상황이 있습니다. app.config 파일을 단위 테스트 프로젝트에 복사했습니다. 따라서 단위 테스트 프로젝트에는 엔드 포인트 정보도 포함됩니다.


2
완전한 app.config를 복사하지 않고 system.serviceModel섹션을 복사했습니다 . 그게 다야!
kwrl

system.serviceModel콘솔 응용 프로그램의 app.config에 복사 한 것을 제외하고 동일
AlbatrossCafe

5

나는이 문제에 한 번 직면했다. WCF 서비스를 사용하는 인터페이스를 계속 개발하고 있었기 때문입니다. 테스트 응용 프로그램을 구성하고 개발을 계속했습니다. 그런 다음 개발 과정에서 일부 서비스 네임 스페이스를 변경했습니다. 그래서 WCF 클래스와 일치하도록 web.config에서 "system.serviceModel-> 클라이언트-> 끝점-> 계약"을 두 번 확인했습니다. 그런 다음 문제가 해결됩니다.


4

구성의 네임 스페이스는 클라이언트의 기본 네임 스페이스 뒤 (프로젝트 속성에 구성된대로) 나머지 네임 스페이스 경로를 반영해야합니다. 게시 된 답변을 기반으로 클라이언트가 "Fusion.DataExchange.Workflows"네임 스페이스에 있도록 구성되어 있다고 생각합니다. 클라이언트 코드를 다른 네임 스페이스로 이동 한 경우 나머지 네임 스페이스 경로와 일치하도록 구성을 업데이트해야합니다.


3

같은 문제가 있습니다. 클래스 라이브러리에서 WCF 서비스를 사용하고 Windows 응용 프로그램 프로젝트에서 클래스 라이브러리를 호출합니다 <system.serviceModel>. 그러나 Windows 응용 프로그램의 구성 파일 변경 파일을 잊어 <system.serviceModel>버렸습니다. 클래스 라이브러리의 app.Config 파일 과 동일 합니다.
솔루션 : 외부 라이브러리의 구성을 클래스 라이브러리의 wcf 구성과 동일하게 변경하십시오.


3

안녕하세요. 같은 문제가 발생했지만 가장 좋은 해결책은 .NET에서 클라이언트 쪽 구성을 구성하는 것입니다. 내가 발견 한 것은 http : /namespace/service.svc? wsdl = wsdl0이라는 쿼리 문자열로 서비스 참조를 추가하면 클라이언트 측에서 구성 엔드 포인트를 만들지 않는다는 것입니다. 그러나? wsdl-wsdl0을 제거하고 url http : /namespace/service.svc 만 사용하면 클라이언트 구성 파일에서 엔드 포인트 구성이 작성됩니다. 간단한 설명은 "? WSDL = WSDL0"입니다.


3

서비스 클라이언트 선언 행을 클래스 필드로 사용하지 말고 대신에 사용 된 각 메소드에서 인스턴스를 작성하십시오. 따라서 문제점이 수정됩니다. 서비스 클라이언트 인스턴스를 클래스 필드로 작성하면 설계 시간 오류가 발생합니다!


3

PRISM 프레임 워크를 사용하여 WPF 응용 프로그램을 사용하는 경우 시작 프로젝트 (예 : 부트 스트 래퍼가있는 프로젝트)에 구성이 존재해야합니다.


2

이 오류는 클래스 라이브러리에서 서비스를 호출하고 다른 프로젝트에서 클래스 라이브러리를 호출하는 경우 발생할 수 있습니다.


2

이 문제를 생성 / 수정하는 방법에는 여러 가지가 있습니다. 필자는 사용중인 CRM 제품이 기본 코드로 작성되었으며 .NET dll을 호출 할 수 있지만 주 응용 프로그램에 있거나 위에 있어야하는 구성 정보가 표시됩니다. 나에게 CRM 응용 프로그램은 .NET이 아니므로 machine.config 파일에 저장해야했습니다 (원하는 위치가 아님). 또한 회사에서 Websense를 사용하기 때문에 407 프록시 인증 필요 문제로 인해 서비스 참조를 추가하는 데 어려움을 겪었습니다.이 문제는 machine.cong를 수정해야했습니다.

프록시 솔루션 :

WCF 서비스 참조를 작동 시키려면 DLL의 app.config에서 주 응용 프로그램 구성으로 정보를 복사해야했습니다 (그러나 저에게는 machine.config였습니다). 또한 엔드 포인트 정보를 동일한 파일에 복사해야했습니다. 일단 그렇게하면 나를 위해 일하기 시작했습니다.


2

확인. 내 경우는 약간 다른 것이었지만 마침내 나는 그것에 대한 해결책을 찾았습니다. Console.EXE-> DLL-> WS1 호출-> DLL-> WS2 호출

Console.EXE.config에서 WS1의 서비스 모델과 WS2의 구성을 권장했습니다. -문제를 해결하지 못했습니다.

그러나 WS2WebReference를 WS1에 추가하고 실제로 WS2의 프록시를 생성하고 호출하는 DLL뿐만 아니라 WS2WebReference를 추가 할 때까지 여전히 작동하지 않았습니다 .


2

클래스 라이브러리에서 웹 서비스를 참조하는 경우 app.config를 Windows 애플리케이션 또는 콘솔 애플리케이션에 복사해야합니다.

솔루션 : 외부 라이브러리의 구성을 클래스 라이브러리의 wcf 구성과 동일하게 변경하십시오.

나를 위해 일했다


2

나는 같은 문제가 있었다
데스크톱 앱을 사용하고 Global Weather Web 서비스를 사용

서비스 참조를 삭제하고 웹 참조를 추가했으며 문제가 해결되었습니다.


2

나를위한 해결책은 클라이언트 web.config의 끝점 이름 속성에서 끝점 이름을 제거하는 것이 었습니다.

ChannelFactory<TService> _channelFactory = new ChannelFactory<TService>("");

하루 종일 운동했다. 또한 초기 수정 사항이 표시 될 때 잘못되었지만이 수정 사항이 적용되면 계약 이름이 잘못되었습니다. 계약 이름 문자열 사람에 대한 두 번 다음 세 번 확인! 속성 : 이안


2

찾아 볼 항목을 하나 더 추가하겠습니다. ( 톰 하이 그 답변은 이미 암시하지만 명시 적으로하고 싶습니다.)

web.config파일에는 다음이 정의되어 있습니다.

<protocolMapping>
    <add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>

이미 하나의 참조에 basicHttpsBinding을 사용하고 있었지만 basicHttpBinding (s 없음)이 필요한 새 참조를 추가했습니다. 내가해야 할 일은 protocolMapping다음과 같이 내 것에 추가하는 것입니다 .

<protocolMapping>
    <add binding="basicHttpBinding" scheme="http" />
    <add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>

으로 LR이 제대로 지적,이 요구는 오른쪽 장소에서 정의합니다. 저에게 이것은 Unit Test 프로젝트의 app.config와 메인 서비스 프로젝트의 web.config에있는 것을 의미했습니다.


2

전역 범위 연산자없이 구성 파일 요소에서 계약을 참조 할 때이 오류가 발생했습니다.

<endpoint contract="global::MyNamepsace.IMyContract" .../>

작동하지만

<endpoint contract="MyNamepsace.IMyContract" .../>

"계약을 참조하는 기본 엔드 포인트 요소를 찾을 수 없습니다"오류가 발생합니다.

MyNamepsace.IMyContract를 포함하는 어셈블리는 기본 응용 프로그램과 다른 어셈블리에 있으므로 전역 범위 확인을 사용해야 할 수도 있습니다.


2

서비스 참조를 추가 할 때

여기에 이미지 설명을 입력하십시오

입력하는 네임 스페이스에주의하십시오.

여기에 이미지 설명을 입력하십시오

인터페이스 이름에 추가해야합니다.

<client>
  <endpoint address="http://192.168.100.87:7001/soap/IMySOAPWebService"
            binding="basicHttpBinding" 
            contract="MyNamespace.IMySOAPWebService" />
</client>

2

나는 같은 오류가 있었고 많은 일을 시도했지만 작동하지 않았습니다. 내 "계약"이 모든 프로젝트에서 같지 않다는 것을 알았을 때, 솔루션 내부의 모든 프로젝트와 동일하게 계약을 변경했습니다. 이것은 프로젝트 A입니다

<client>
    <endpoint address="https://xxxxxxxx" binding="basicHttpBinding" bindingConfiguration="basic" contract="ServiceReference.IIntegrationService" name="basic" />
</client>

프로젝트 B :

<client>
    <endpoint address="xxxxxxxxxxxxx" binding="basicHttpBinding" bindingConfiguration="basic" contract="ServiceReference1.IIntegrationService" name="basic" />
</client>

마지막으로 다음과 같이 둘 다 변경했습니다.

<client>
    <endpoint address="https://xxxxxxxxxxx" binding="basicHttpBinding" bindingConfiguration="basic" contract="MyServiceReferrence.IIntegrationService" name="basic" />
</client>

1

나는 같은 문제가 있었고 그 끝점을 사용한 호스트 응용 프로그램과 dll이 동일한 서비스 참조 이름을 가진 경우에만 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.