1

我实际上是在尝试创建一个通过服务引用连接到 WCF 的 wpf 项目,我还在我的 wpf 项目中使用 MVVM 模式,当我在我的 viewModel 的 CTOR 中声明 serviceManager 时出现问题!

我的 view.xaml 告诉我:在 ServiceModel 客户端配置部分中找不到引用合同“UserServiceReferences.IUserManagement”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。

这是我的 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>

这里是我的 WCF 服务中的 Web.config:

<?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>

这两个项目在同一个解决方案中。

我迷路了请帮帮我!!!!

4

1 回答 1

1

您正在使用 WCF 4.0,它使用简化的配置概念,如果没有在配置中定义或通过代码添加端点,它将添加默认端点。

关于实际问题,我发现异常“UserServiceReferences.IUserManagement”中的合同名称存在差异,并在端点“UserServiceReference.IUserManagement”中定义。请注意命名空间 'UserServiceReference(s) 中的额外 's'。如果它不是错字,那么这可能是问题的原因。否则,请检查端点是否在正确的配置文件中定义。

HTH。

于 2010-12-17T10:49:35.937 回答