Jakieś pomysły, jak to naprawić?
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>
Nie można znaleźć domyślnego elementu punktu końcowego, który odwołuje się do kontraktu „UserService.UserService” w sekcji konfiguracji klienta ServiceModel. Może to być spowodowane tym, że nie znaleziono pliku konfiguracyjnego dla Twojej aplikacji lub nie można znaleźć elementu punktu końcowego pasującego do tego kontraktu w elemencie klienta.
Zdecydowany!
Nie wspomniałem, że to aplikacja Silverlight. Miałem odwołanie do wcf w bibliotece DLL, która miała swój własny plik „ServiceReferences.ClientConfig”. Przeniosłem zawartość ServiceReferences.ClientConfig biblioteki DLL do głównego projektu Silverlight i zadziałało.
Odpowiedzi:
Miałem ten sam problem. Moja aplikacja była również aplikacją Silverlight i usługa była wywoływana z biblioteki klas z niestandardową kontrolką UserControl, która była w niej używana.
Rozwiązanie jest proste. Skopiuj definicje punktów końcowych z pliku konfiguracyjnego (np. ServiceReferences.ClientConfig) biblioteki klas do pliku konfiguracyjnego aplikacji Silverlight. Wiem, że spodziewałbyś się, że zadziała bez konieczności robienia tego, ale najwyraźniej ktoś w Redmond miał tego dnia wakacje.
źródło
web.config
?Możesz również ustawić te wartości programowo w bibliotece klas, co pozwoli uniknąć niepotrzebnego przenoszenia plików konfiguracyjnych w bibliotece. Przykładowy kod dla prostego BasciHttpBinding to -
źródło
Na wszelki wypadek, gdy ktoś napotka ten sam problem podczas korzystania z WPF (zamiast WCF lub Silverlight):
Miałem ten błąd podczas łączenia się z usługą internetową. Kiedy mój kod znajdował się w "głównym" rozwiązaniu aplikacji WPF, nie ma problemu, działał idealnie. Ale kiedy przeniosłem kod do bardziej sensownego rozwiązania warstwy DAL, wyrzuciło to wyjątek.
Jak powiedział "Sprite" w tym wątku, musisz ręcznie skopiować tag.
W przypadku aplikacji WPF oznacza to skopiowanie tagu z pliku app.config w moim rozwiązaniu DAL do pliku app.config w głównym rozwiązaniu aplikacji WPF.
źródło
Natknąłem się na ten sam problem, z jakiegokolwiek powodu Visual Studio nie zaktualizował konfiguracji internetowej, kiedy po raz pierwszy dodałem usługę. Zauważyłem, że aktualizacja odniesienia usługi również rozwiązała ten problem.
Kroki:
źródło
Zmień plik web.config usługi WCF na „endpoint address =" "binding =" basicHttpBinding "..." (poprzednio binding = "wsHttpBinding") Po skompilowaniu aplikacji w "ServiceReferences.ClientConfig" "" configuration> ma wartość . Wtedy będzie działać dobrze.
źródło
Zmień nazwę pliku output.config utworzonego przez svcutil.exe na app.config. to działało dla mnie.
źródło
Czy masz interfejs, który implementuje Twoja klasa „UserService”.
Twoje punkty końcowe powinny określać interfejs dla atrybutu kontraktu:
źródło
Nie jestem pewien, czy to jest problem. Punkt końcowy i powiązanie mają tę samą nazwę
źródło
Nie jestem pewien, czy to naprawdę problem, ale widzę, że masz taką samą nazwę dla konfiguracji wiązania ().
Zwykle próbuję nazywać moje punkty końcowe czymś w rodzaju „UserServiceBasicHttp” lub czymś podobnym („Binding” naprawdę nie ma tu nic do roboty) i próbuję nazwać moje konfiguracje powiązań czymś z „.... Konfiguracja”, np. „UserServiceDefaultBinding”, aby uniknąć potencjalnych konfliktów nazw.
Marc
źródło
Musiałem dodać usługę w wywołującym pliku App.config, aby działała. Upewnij się, że jednak to ty. To wydawało się działać dla mnie.
źródło
Ten problem występuje podczas korzystania z usługi za pośrednictwem innej aplikacji.Jeśli aplikacja ma plik konfiguracyjny, po prostu dodaj informacje o konfiguracji usługi do tego pliku. W mojej sytuacji nie było żadnego pliku konfiguracyjnego, więc używam tej techniki i zadziałało. Wystarczy zapisać adres url w aplikacji, odczytać go i za pomocą metody BasicHttpBinding () wysłać go do aplikacji serwisowej jako parametr. to:
źródło
Dla tych, którzy pracują z usługami AX 2012 AIF i próbują wywołać tam projekt C # lub VB wewnątrz AX (x ++) i cierpią z powodu takich błędów „nie można znaleźć domyślnego punktu końcowego” ... lub „nie znaleziono umowy” ... wróć do projektu Visual Studio (C #) i dodaj te wiersze przed zdefiniowaniem klienta usługi, a następnie wdróż projekt i zrestartuj klienta AX i spróbuj ponownie: Uwaga, przykład dotyczy adaptera NetTcp , zamiast tego można łatwo użyć dowolnego innego adaptera zgodnie z potrzebami .
źródło
W przypadku, gdy używasz aplikacji WPF przy użyciu środowiska PRISM, wówczas konfiguracja powinna istnieć w projekcie startowym (tj. W projekcie, w którym znajduje się program ładujący).
Krótko mówiąc, po prostu usuń go z biblioteki klas i umieść w projekcie startowym.
źródło