2013-06-01 2 views
0

나는 SSL 통신,있는 wsHttpBinding 및 전송 보안 WCF 서비스를 가지고,하지만 난으로 변경하려고하면WCF 서비스 및 TransportWithMessageCredential

 <security mode="TransportWithMessageCredential"> 
     <transport clientCredentialType="None" /> 
     <message clientCredentialType="UserName"/> 
     </security> 

나는 오류를 받고 있어요 :

An unsecured or incorrectly secured fault was received from the other party. See the 
inner FaultException for the fault code and detail. 

클라이언트 측과 서버 측에서 보안 모드가 변경되며 최신 계약이 적용됩니다. 이 문제에 대한 해결책을 찾을 수 없습니다.

도와 주시겠습니까?

Client.config :

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup> 
    <system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
     <binding name="WSHttpBinding_IDatabaseService">   
      <security mode="TransportWithMessageCredential"> 
      <transport clientCredentialType="None" /> 
      <message clientCredentialType="UserName"/> 
      </security> 
     </binding> 
     </wsHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="https://dbservice:3915/DatabaseService.svc" 
     binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IDatabaseService" 
     contract="DBService.IDatabaseService" name="WSHttpBinding_IDatabaseService"> 
     <identity> 
      <dns value="dbservice" /> 
     </identity> 
     </endpoint> 
    </client> 
    </system.serviceModel> 
</configuration> 

Server.config :

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <appSettings> 
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" /> 

    <!--<roleManager defaultProvider="CustomRoleProvider" enabled="true"> 
     <providers> 
     <clear /> 
     <add name="CustomRoleProvider" type="CustomRoleProvider" /> 
     </providers> 
    </roleManager>--> 
    <!--<membership defaultProvider="CustomMembershipProvider"> 
     <providers> 
     <clear /> 
     <add name="CustomMembershipProvider" type="CustomMembershipProvider" /> 
     </providers> 
    </membership>--> 
    </system.web> 

    <system.diagnostics> 
    <trace autoflush="true" /> 
    <sources> 
     <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true"> 
     <listeners> 
      <add name="sdt" type="System.Diagnostics.XmlWriterTraceListener" initializeData="SdrConfigExample.e2e" /> 
     </listeners> 
     </source> 
    </sources> 
    </system.diagnostics> 

    <system.serviceModel> 
    <services>  
     <service name="DBService.DatabaseService" behaviorConfiguration="ServiceBehavior"> 
     <endpoint address="https://dbservice:3915/DatabaseService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IDatabaseService" contract="DBService.IDatabaseService"> 
      <identity> 
      <dns value="dbservice" /> 
      </identity> 
     </endpoint>    
     </service>  
    </services> 

    <behaviors> 
     <serviceBehaviors>   
     <behavior name="ServiceBehavior"> 
      <!-- To avoid disclosing metadata information, set the values below to false before deployment --> 
      <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> 
      <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 

      <!--<serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="CustomRoleProvider" />--> 
      <serviceCredentials> 
      <!--<userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="CustomMembershipProvider" />--> 
      <serviceCertificate findValue="dbservice" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" /> 
      </serviceCredentials> 
     </behavior>  
     </serviceBehaviors> 
    </behaviors> 

    <bindings> 
     <wsHttpBinding> 
     <binding name="WSHttpBinding_IDatabaseService"> 
      <security mode="TransportWithMessageCredential"> 
      <transport clientCredentialType="None" /> 
      <message clientCredentialType="UserName" /> 
      </security>  
     </binding> 
     </wsHttpBinding> 
    </bindings> 

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

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 


    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    </entityFramework> 
    <connectionStrings> 
    <add name="WypozyczalniaDataContext" connectionString="metadata=res://*/Wypozyczalnia.csdl|res://*/Wypozyczalnia.ssdl|res://*/Wypozyczalnia.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;data source=C:\Users\Wojciech\Desktop\Wypozyczalnia\Wypozyczalnia.sdf&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
</configuration> 

답변

0

8 후 시간, 마지막으로 나는 문제를 발견했습니다. DBSerivce.config를 편집하고 있지만 잊어 버렸습니다. 자체 호스팅 응용 프로그램에 별도의 App.config가 있다는 것을 잊어 버렸습니다. ...

반감을 느낄 수 있습니다 : P.