c # WPF и проблема сопоставления WCF - PullRequest
1 голос
/ 17 декабря 2010

Я на самом деле пытаюсь создать wpf-проект, подключенный к WCF через ссылки на сервисы, я также использую шаблон MVVM в своем проекте wpf, и у меня возникает проблема, когда я объявляю в моем CTOR моей viewModel serviceManager !

Мой view.xaml говорит мне: Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт «UserServiceReferences.IUserManagement» в разделе конфигурации клиента ServiceModel. Это может быть связано с тем, что для вашего приложения не найден файл конфигурации, или из-за того, что в клиентском элементе не найден элемент конечной точки, соответствующий этому контракту.

вот мой файл App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IUserManagement" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="None">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:2981/UserManagement.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IUserManagement"
                contract="UserServiceReference.IUserManagement" name="BasicHttpBinding_IUserManagement" />
        </client>
    </system.serviceModel>
</configuration>

и вот мой Web.config в моей службе WCF:

<?xml version="1.0"?>
<configuration>

    <system.web>
        <compilation debug="true" targetFramework="4.0">
          <assemblies>
            <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
          </assemblies>
        </compilation>
    </system.web>

  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- Pour éviter la divulgation des informations sur les métadonnées, définissez la valeur ci-dessous sur false et supprimez le point de terminaison des métadonnées ci-dessus avant le déploiement. -->
          <serviceMetadata httpGetEnabled="true" />
          <!-- Pour recevoir les détails d'exception des erreurs à des fins de débogage, définissez la valeur ci-dessous sur true. Définissez-la sur false avant le déploiement pour éviter la divulgation des informations d'exception. -->
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <!--<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />-->
  </system.serviceModel>


  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>
  <connectionStrings><add name="RssBddEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=JAGUAR-PC\SQLSERVER;Initial Catalog=RssBdd;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

То есть два проекта находятся в одном решении.

Я потерян, пожалуйста, помогите мне !!!!

1 Ответ

1 голос
/ 17 декабря 2010

Вы используете WCF 4.0, который использует упрощенные концепции конфигурации и добавит конечные точки по умолчанию, если конечные точки не определены в конфигурации или добавлены с помощью кода.

о фактической проблеме, я вижу, что есть разница в имени контракта в исключении 'UserServiceReferences.IUserManagement' и определенной в конечной точке "UserServiceReference.IUserManagement" обратите внимание на дополнительные 's' в пространстве имен 'UserServiceReference (s). если это не опечатка, то это может быть причиной проблемы. в противном случае убедитесь, что конечные точки определены в правильном файле конфигурации.

НТН.

...