Varsayılan uç nokta öğesi bulunamadı


369

Bir web servisine VS2008 / .NET 3.5 çözümüne bir proxy ekledim. İstemci yapılandırırken .NET bu hatayı atar:

ServiceModel istemci yapılandırması bölümünde 'IMySOAPWebService' sözleşmesine başvuran varsayılan uç nokta öğesi bulunamadı. Bunun nedeni, uygulamanız için hiçbir yapılandırma dosyasının bulunmaması veya istemci öğesinde bu sözleşmeye uyan hiçbir uç nokta öğesinin bulunmaması olabilir.

Bu hatayı aramak, sözleşmede tam ad alanını kullanmamı söylüyor. İşte tam ad alanına sahip benim 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>

Yerel XP çalıştırıyorum (Google, win2k3 bir dizi hit vurur çünkü bu söz) app.config app.exe.config kopyalanır, bu yüzden de sorun değil.

Herhangi bir ipucu var mı?


Bu bir web sunucusunda çalışıyorsa, .svc eklemeniz gerekir. Örnek: " 192.168.100.87:7001/soap/IMySOAPWebService.svc
Darren C

Hizmet bir .NET hizmeti değil, bir web sunucusunda çalışmıyor.
edosoft

Bu sorunu .NET'te geliştirilen projelerde çözdüm, ancak VB6'da bazı projelerim var ve aynı problemim var. Herhangi bir fikir?
Gabriel Intriago

Yanıtlar:


588

"Bu hata, hizmeti bir sınıf kitaplığında çağırıyor ve sınıf kitaplığını başka bir projeden çağırıyorsanız ortaya çıkabilir."

Bu durumda, WS yapılandırma ayarlarını ana projeler app.config dosyasına bir winapp veya web.config ise bir web uygulaması olarak eklemeniz gerekir. PRISM ve WPF / Silverlight ile bile gitmenin yolu budur.


1
Özel sorunumun nedeni bu değildi, ama eminim bu başkalarına yardımcı olacaktır. Thanks
edosoft

9
İkisini otomatik olarak birleştirmenin bir yolu var mı? Sınıf kitaplığı yapılandırmasını güncellerse ne olur? Yalnızca referans gösterilen tüm projelerde kopyalanan yapılandırma bilgilerini güncellemeyi hatırlamakta mı kaldınız? Bu düzeltme, geliştiricinin uyanıklığına çok fazla güveniyor gibi görünüyor ...
Sean Hanley

1
Aynı hatayı bir WP7 uygulaması için alıyorum (Silverlight, sanırım) ve ServiceReferences.ClientConfigproje dizininde oluşturulduğunu fark etmek çok uzun sürdü . Kitaplığımdaki dosyadan <bindings>ve <client>öğelerini ana uygulamama (önceden boş olan) kopyalamak işleri işler hale getirdi.
David Mason

4
Bunun olmasının nedeni (anladığım kadarıyla), yapılandırma değerlerinin web, winforms, wpf vb. Gibi ana projeden okunmasıdır. sınıf kitaplığı yapılandırması yerine ana proje yapılandırmasında olması gerekir.
Ciaran Bruen

6
Dolayısıyla, bir kitaplıkta WCF kullanırsak, ayarları doğrudan stackoverflow.com/questions/7688798/… gösterilen bağlantı gibi kodlamanın daha iyi olacağı sonucuna varabiliriz .
Youngjae

90

Bu (diğerlerinin önerdiği gibi düşünüyorum) ciltleme ve uç nokta adresi örnekleri kendim oluşturarak çözdüm - çünkü ben yapılandırma dosyalarına yeni ayarlar eklemek istemedim (bu yaygın olarak kullanılan bazı mevcut kütüphane kodunun yerine geçer, ve daha önce eski bir Web Hizmeti Referansı vb. kullandı) ve bu yüzden her yerde yeni yapılandırma ayarları eklemeden bunu bırakabilmek istedim.

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();
} 

Düzenle

Https kullanıyorsanız, BasicHttpsBindingbunun yerine kullanmak zorundasınız BasicHttpBinding.


1
Bu yararlı bir cevap. Kullandığım bir web hizmetinde, özel bitiş noktasının nesnenin ilk bildirimine bağlanması gerekiyordu. Daha sonra yapmaya çalışırsam işe yaramaz.
Paul Morel

2
En iyi cevabın hile yapmış olabileceğinden şüphelendiğim kadarıyla, çözümünüz işe yaradı ve kendi yapılandırma dosyalarımı hacklemem daha iyi görünüyor.
Sam, Reinstate Monica'ya

Bir cazibe çalışır! Çok benim app ile bir "app.config" dosyasını dağıtmak yerine kodda Bitiş Noktası ayarlamak mümkün tercih.
Daniel Gee

1
Bir Https web servisi ise BasicHttpBinding () öğesini BasicHttpsBinding () olarak değiştirmeyi unutmayın
Anthony

Bu çözüm, app.config veya web.config içermeyen EXCEL-DNA gibi uygulamalar için en iyisidir.
user781700

75

Birkaç seçeneği test ettikten sonra, nihayet bunu kullanarak çözdüm

Sözleşme = "IMySOAPWebService"

yani yapılandırmada tam ad alanı olmadan. Herhangi bir nedenle tam ad düzgün bir şekilde çözülmedi


3
Görünüşe göre, sözleşme adı tam olarak müşteriyle aynı şekilde yazılmalıdır. Benim durumumda, var proxy = new ExternalServices.ServiceClient("MyServiceEndpoint");sözleşme için isim alanını eklediğimde çalıştım:contract="ExternalServices.IMyService"
Anatoly Mironov

Bu benim için işe yaramadı. Benim sorunum biraz farklı olabilir. Zaman zaman bu hatayı alıyorum. Sorun ne olabilir. Hata hizmet tarafında olabilir mi? _Teşekkürler
albatros

57

Aynı sorunu yaşadım. Bir web REFERENCE için URL'yi yapıcıya ilk parametre olarak sağlamanız gerektiği ortaya çıkıyor:

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

Yeni bir stil web SERVİS REFERANSI için, konfigürasyondaki bir uç nokta girişini ifade eden bir isim vermelisiniz:

new WebService.WebServiceSoapClient("WebServiceEndpoint");

Web.configVeya içinde karşılık gelen bir girişle App.config:

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

"Eski bir programda çalıştı" tünel vizyonunu kaldırmak oldukça zor ...


3
Ah ha! Bu benim için düzeltti, daha önce boş bir yapıcı kullanıyordum, bu da başarısız olmaya devam etti: new WebService.WebServiceSoapClient (); // başarısız
travis

Bu solutin işe yaradı !!! ama, neden varsayılan bitiş noktasının yüklenmediğini merak ediyorum? nedenleri hakkında herhangi bir fikir?
Dipti Mehta

@Andomar eski bir iplik getirdiğim için üzgünüm. Birinin diğerine göre bir avantajı var mı - WebReference ve ServiceReference? Sanırım eski benim için daha uygun olurdu ama ServiceReference sanırım havalı yeni bir şey ...
Kev

17

Böyle bir durumum vardı,

  • Bir yerde barındırılan WCF Hizmeti
  • Ana Proje
  • WCF Hizmetine Hizmet referansı olan 'sınıf Kütüphane' türünde Tüketici Projesi
  • Ana proje tüketici projesinden yöntemleri çağırır

Artık Tüketici projesinde ilgili tüm yapılandırma ayarları <system.serviceModel> app.config dosyamın , hala yukarıdaki ile aynı hatayı atıyordu.

Tüm yaptığım, aynı <system.serviceModel>projeyi ana projemin app.config dosyasına ekledi ve sonunda gitmemiz iyi oldu.

Gerçek sorun, benim durumumda olduğu gibi, yanlış yapılandırma dosyasını okuyordu. Tüketicinin app.config yerine ana projenin yapılandırmasından bahsediyordu. Bunu anlamak iki saatimi aldı.


1
Aynı. <system.serviceModel>Kitaplığınızda arayın , ardından ana uygulamanızın app.config dosyasına kopyalayın. Sınıf kitaplığı app.configs çalışma zamanında okunmuyor başka bir belirtisi. Bu gözetimi (imo) telafi etmek için çok zaman harcıyorum. Kütüphanenin yapılandırmasını app.config dosyasından okumasını istiyorsanız, bırakın. Aksi halde, neden birinci sınıf kütüphaneler için bir app.config var?
SteveCinq

15

"Bu hata, hizmeti bir sınıf kitaplığında çağırıyor ve sınıf kitaplığını başka bir projeden çağırıyorsanız ortaya çıkabilir."

"Bu durumda WS yapılandırma ayarlarını ana projeler app.config içine bir winapp veya web.config ise bir web uygulaması eklemeniz gerekir. PRISM ve WPF / Silverlight ile bile gitmenin yolu budur."

Evet, ancak ana projeyi değiştiremiyorsanız (örneğin Orchard CMS), projenizde WCF hizmeti yapılandırmasını koruyabilirsiniz.

İstemci oluşturma yöntemiyle bir hizmet yardımcısı oluşturmanız gerekir:

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;
    }
}

ve kullanın:

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

Bu makaledeki ayrıntılara bakın .


15

Buradaki birkaç yanıt, bir sınıf dosyasından hizmete başvurmanın akıl almaz derecede belirsiz hatasıyla karşılaştığınızda doğru çözüme ulaşır: hizmet yapılandırma bilgilerini konsolunuzun veya windows uygulamanızın app.config web.config dosyasına kopyalayın. Bu cevapların hiçbiri size neyin kopyalanacağını göstermiyor. Bunu düzeltmeye çalışalım.

"TranslationServiceOutbound" adlı bir hizmet için yazdığım bu çılgın hatayı aşmak için, sınıf kütüphanemin config dosyasından konsol uygulamamın config dosyasına kopyaladığım şey.

Temel olarak system.serviceModel bölümünde her şeyi istiyorsunuz :

  <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

Bu beni delirtti.

WCF ile Silverlight 3 Prizma (CAB) kullanıyorum

Bir Prism modülünde bir WCF hizmeti çağırdığımda, aynı hatayı alıyorum:

Hizmet modeli istemci yapılandırması bölümünde 'IMyService' sözleşmesine başvuran varsayılan uç nokta öğesi bulunamadı. Bunun nedeni, uygulamanız için hiçbir yapılandırma dosyası bulunmaması veya istemci öğesinde bu sözleşmeye uyan hiçbir uç nokta öğesinin bulunmaması olabilir

Modülün ServiceReferences.ClientConfig dosyasında değil, Shell'in ServiceReferences.ClientConfig dosyası için .xap dosyasına baktığı ortaya çıkıyor. Son noktamı ve bağımı Silverlight Shell uygulamamdaki mevcut ServiceReferences.ClientConfig dosyasına ekledim (kendi WCF hizmetlerini çağırıyor).

Sonra Web projemin ClientBin klasörü için yeni .xap dosyasını oluşturmak için Shell uygulamasını yeniden oluşturmak zorunda kaldı.

Şimdi bu kod satırı nihayet işe yarıyor:

MyServiceClient myService = new MyServiceClient();

11

WCF hizmeti, bin klasöründe başvurulan bir .dll dosyası olarak ASP.NET uygulamasına eklenen bir sınıf kitaplığına eklenmiş bir ASP.NET uygulaması içinde bu hatayı alıyordum. Hatayı gidermek için, sınıf kitaplığındaki app.config dosyasındaki WCF hizmetine başvuran yapılandırma ayarlarının ASP.NET sitesi / uygulaması için web.config ayarlarına kopyalanması gerekir.


Diğer yanıtlar aynı sorunu açıklamış olabilir. Bu cevap benim durumumu açıkladı ve sonunda sorunu anladım.
Günümü

10

Ben buldum (yanı sıra bir sınıf kitaplığı arabirimi kullanırken istemci UI's App.config kopyalamak) Bağlanmanın adını Servis Başvurusu adıyla önek zorunda kaldı (benim ServiceReferenceaşağıda).

Örneğin:

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

oluşturulan varsayılan yerine:

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

1
Aynı şeyi yapmak zorundaydım. Nedenini gerçekten anlamıyorum.
Brig

8

Aynı sorunu yaşadım, ancak sözleşme ad alanını değiştirmek benim için işe yaramadı. Bu yüzden .Net 3.5 hizmet başvurusu yerine .Net 2 stili bir web başvurusu denedim. İşe yaradı.

Visual Studio 2008'de bir Web başvurusu kullanmak için, 'Hizmet Başvurusu Ekle'yi tıklatın, ardından iletişim kutusu görüntülendiğinde' Gelişmiş'i tıklatın. Burada, Servis referansı yerine bir Web referansı kullanmanıza izin verecek bir seçenek bulacaksınız.


2
Ben de bunu yaptım. Sorun bana mantıklı gelsin.
Jarrett Widman

Bu benim için de işe yaradı. Artık tüm bu ekstra önemsiz çözümümde (Ayarlar.Settings, yeni bir Web Referansları klasörü) iyi bir neden yok. Daha fazla zamanım olduğunda geri gelip burayı tekrar ziyaret etmek zorunda kalacak.
Mike K

Kabul. Aynı sorunu yaşadım ve bir web referansına değiştirerek düzelttim.
Stephen Hosking

7

Bir hizmeti tüketen kitaplık dışı bir uygulamayı test etmek bu soruna neden olabilir.

Başkalarının girdiği bilgiler, bunun temel nedenini ele alır. Otomatik test senaryoları yazmaya çalışıyorsanız ve test ettiğiniz birim aslında servis arayüzünü çağıracaksa, test projesine servis referansını eklemeniz gerekir. Bu, kitaplığın hata türünü kullanan uygulamanın bir lezzetidir. Arayüzü tüketen kodum bir kütüphanede olmadığından hemen fark etmedim . Ancak, test gerçekten çalıştığında, test edilen montajdan değil, test montajından çalışacaktır.

Birim sınama projesine bir hizmet başvurusu eklemek sorunumu çözdü.


7

Birim testinde olan bir durumum var. App.config dosyasını birim test projesine kopyaladım. Böylece birim test projesi de son nokta bilgilerini içerir.


2
Tüm app.config dosyasını değil, system.serviceModelbölümü kopyaladım . Bu kadar!
kwrl

Aynı, system.serviceModelbir konsol uygulamasının app.config dosyasına kopyaladığım hariç
AlbatrossCafe

5

Bu sorunla bir kez karşılaştım. Çünkü hala WCF servisini kullanan arayüzü geliştiriyordum. Test uygulamasını yapılandırdım ve geliştirmeye devam ettim. Sonra geliştirme, hizmetlerin bazı ad alanlarını değiştirdim. Bu yüzden web.config dosyasında "system.serviceModel -> client -> endpoint -> contract" ifadesini WCF sınıfıyla eşleştirmek için tekrar kontrol ettim. Sonra sorun çözüldü.


4

Yapılandırmanızdaki ad alanı, istemcinizin varsayılan ad alanından sonra (proje özelliklerinde yapılandırıldığı gibi) ad alanı yolunun geri kalanını yansıtmalıdır. Gönderilen cevabınıza göre, tahminim müşterinizin "Fusion.DataExchange.Workflows" ad alanında olacak şekilde yapılandırılmış olmasıdır. İstemci kodunu başka bir ad alanına taşıdıysanız, yapılandırmayı kalan ad alanı yoluyla eşleşecek şekilde güncellemeniz gerekir.


3

Aynı sorun var. Ben sınıf kitaplığında WCF hizmetini kullandım ve sınıf kitaplığı windows uygulama projesinden çağırıyorum. Ama ben <system.serviceModel>windows uygulama yapılandırma dosyasında değişiklik <system.serviceModel>unutuyorum proje kitaplığı sınıf kitaplığı app.Config dosyası aynı.
çözüm: dış projenin yapılandırmasını sınıf kitaplığının wcf yapılandırmasıyla aynı şekilde değiştirin.


3

Merhaba Aynı sorunla karşılaştım ama en iyi çözüm .NET istemci tarafı yapılandırmasını yapılandırmak için izin vermektir. Ne http: /namespace/service.svc bir sorgu dizesi ile bir hizmet başvurusu eklediğinizde bu keşfettiğim nedir? Wsdl = wsdl0 istemci tarafında bir yapılandırma uç noktaları oluşturmaz. Ancak? Wsdl-wsdl0 öğesini kaldırdığımda ve yalnızca http: /namespace/service.svc url'sini kullandığımda, istemci yapılandırma dosyasında uç nokta yapılandırması oluşturur. kısacası "? WSDL = WSDL0" remoe.


3

Hizmet istemcisi bildirim satırını sınıf alanı olarak koymayın, bunun yerine kullanılan her yöntemde örnek oluşturun. Böylece sorun giderilecektir. Sınıf alanı olarak hizmet istemcisi örneği oluşturursanız, tasarım zamanı hatası oluşur!


3

PRISM çerçevesini kullanarak WPF uygulaması kullanıyorsanız, başlangıç ​​projenizde (yani önyükleyicinizin bulunduğu projede) yapılandırma bulunmalıdır.


2

Hizmeti bir sınıf kitaplığında çağırıyor ve sınıf kitaplığını başka bir projeden çağırıyorsanız, bu hata oluşabilir.


2

Bu sorunu oluşturmanın / düzeltmenin birkaç yolu var gibi görünüyor. Benim için, kullandığım CRM ürünü yerel kodda yazılmıştır ve .NET dll'imi çağırabilir, ancak ana uygulamada / üstünde olması gereken yapılandırma bilgilerine giriyorum. Benim için CRM uygulaması .NET değil, bu yüzden onu machine.config dosyama koymak zorunda kaldım (istediğim yerde değil). Buna ek olarak, şirketim Websense kullandığından, 407 Proxy Kimlik Doğrulaması Gerekli sorunu nedeniyle, Machine.cong'da bir değişiklik yapılması gereken Hizmet Referansını eklemede bile zorlandım.

Proxy çözümü:

WCF Hizmet Başvurusu işe almak için benim DLL app.config ana uygulama yapılandırma (ama benim için bu machine.config) bilgileri kopyalamak zorunda kaldı. Ayrıca uç nokta bilgilerini aynı dosyaya kopyalamak zorunda kaldım. Bunu bir kez yaptıktan sonra benim için çalışmaya başladı.


2

Tamam. Benim durumum biraz farklıydı ama sonunda bunun için düzeltme bulduk: Bir Console.EXE -> DLL -> WS1'i Çağırma -> DLL -> WS2'yi Çağırma

WS1 hizmet modelinin her iki yapılandırmasını ve önerilen Console.EXE.config WS2 var. - sorunu çözmedim.

Ancak WS2 WebReference ekledi kadar hala işe yaramadı, ve sadece WS2 proxy oluşturmak ve çağırmak sadece DLL değil, aynı zamanda .


2

Sınıf kitaplığınızdaki web hizmetine başvuruyorsanız, app.config dosyasını windows uygulamanıza veya konsol uygulamanıza kopyalamanız gerekir

çözüm: dış projenin yapılandırmasını sınıf kitaplığının wcf yapılandırmasıyla aynı şekilde değiştirin.

Benim için çalıştı


2


Masaüstü uygulamasını ve Global Weather Web hizmetini kullanırken aynı sorunu yaşadım

Hizmet referansını sildim ve web referansını ekledim ve sorun çözüldü Teşekkürler


2

Benim için çözüm, son nokta adını istemci web'deki Bitiş Noktası Adı özniteliğinden kaldırmaktı.

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

sadece bütün gün çalışmak için aldı. İlk hata göründüğünde yanlış olmasına rağmen, bu düzeltme gerçekleştikten sonra sözleşme adı yanlıştı. Çift sonra üçlü isim sözleşme adı dizeleri insanlar için kontrol edin! nitelik: Ian


2

Aramak için bir şey daha eklememe izin ver. ( Tom Haigh'in cevabı zaten bununla ilgili, ama açık olmak istiyorum)

Dosyamda web.configaşağıdakiler tanımlandı:

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

Zaten bir referans için basicHttpsBinding kullanıyordum, ama sonra basicHttpBinding (no) gerektiren yeni bir referans ekledim. Tek yapmam gereken şuydu protocolMapping:

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

As LR doğru işaret, bu ihtiyaçların doğru yerlerde tanımlanacak. Benim için bu, Unit Test projemin app.config dosyasında olduğu kadar ana hizmet projesinin web.config dosyasında da olduğu anlamına geliyordu.


2

Global kapsam operatörü olmadan Konfigürasyon dosyası öğesinde Sözleşmeye atıfta bulunurken bu hatayla karşılaştım.

yani

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

çalışır, ancak

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

"Sözleşmeye başvuran varsayılan uç nokta öğesi bulunamadı" hatası veriyor.

MyNamepsace.IMyContract içeren derleme, ana uygulamadan farklı bir derlemedir, bu nedenle genel kapsam çözümünün kullanılması gerektiğini açıklayabilir.


2

Bir servis referansı eklerken

resim açıklamasını buraya girin

yazdığınız ad alanına dikkat edin:

resim açıklamasını buraya girin

Arayüzünüzün adına eklemelisiniz:

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

2

Aynı hatayı aldım ve birçok şey denedim ama işe yaramadım, "sözleşmem" in tüm projelerde aynı olmadığını fark ettiğimden, çözümü çözüm içindeki tüm projeler için aynı olacak ve çalıştığından farklı olarak değiştirdim. Bu proje A

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

Proje B:

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

Sonunda her ikisi için de değiştim:

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

1

Ben aynı sorunu vardı ve sadece ana uygulama ve bu uç noktayı kullanan dll aynı hizmet referans adına sahip olduğunda çözüldü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.