2012-03-20 4 views
0

IIS에 SSL 인증서가있는 WCF 서비스를 만들었습니다. Iam은 그것의 페이지를 볼 수 있지만 iam은 그것을 소비 할 수 없습니다. 어느 쪽이든 웹 사이트에서 wsdl을 열려면 아무 일도 일어나지 않습니다. 나는 클라이언트에서 서비스 참조를 만들려고 할 때 나는 오류서비스에서 WSDL을 읽을 수 없습니다.

Metadata contains a reference that cannot be resolved: ' https://win-1bmal4qsmmk/IPagac/LegalEntityApplicationService.svc?wsdl '.
The document format is not recognized (the content type is 'text/html; charset=UTF-8'). Metadata contains a reference that cannot be resolved: ' https://win-1bmal4qsmmk/IPagac/LegalEntityApplicationService.svc?wsdl '. There was no endpoint listening at https://win-1bmal4qsmmk/IPagac/LegalEntityApplicationService.svc?wsdl that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. The remote server returned an error: (404) Not Found. If the service is defined in the current solution, try building the solution and adding the service reference again.

enter image description here

web.config 파일 웹 사이트의 루트에

<?xml version="1.0"?> 
<configuration> 
    <connectionStrings> 
    <add name="DPMembershipConnection" connectionString="Data Source=localhost; Initial Catalog=data; Integrated Security=True; Pooling=False" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <system.web> 
    <roleManager enabled="true" defaultProvider="DPRoleManager"> 
     <providers> 
     <add name="DPRoleManager" type="System.Web.Security.SqlRoleProvider" connectionStringName="DPMembershipConnection" applicationName="/" /> 
     </providers> 
    </roleManager> 
    <authentication mode="Forms" /> 
    <compilation debug="true" targetFramework="4.0" /> 
    <membership defaultProvider="DPMembership"> 
     <providers> 
     <add applicationName="/" connectionStringName="DPMembershipConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="4" name="DPMembership" passwordStrengthRegularExpression="" type="System.Web.Security.SqlMembershipProvider" /> 
     </providers> 
    </membership> 
    </system.web> 
    <system.serviceModel> 
    <bindings> 
     <ws2007HttpBinding> 
     <binding name="BindingName"> 
      <security mode="TransportWithMessageCredential"> 
      <transport clientCredentialType="None" /> 
      <message clientCredentialType="UserName" /> 
      </security> 
     </binding> 
     </ws2007HttpBinding> 
    </bindings> 
    <services> 
     <service name="ApplicationContract.WCFContract.LegalEntityApplicationService"> 
     <endpoint address="https://localhost/IPagac/LegalEntityService.svc" 
      behaviorConfiguration="NewBehavior0" binding="ws2007HttpBinding" 
      bindingConfiguration="BindingName" name="Endpoint" contract="ApplicationContract.WCFContract.ILegalEntityApplicationService" /> 
     </service> 
    </services> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior name="NewBehavior0" /> 
     </endpointBehaviors> 
     <serviceBehaviors> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
      <serviceAuthorization principalPermissionMode="UseAspNetRoles" 
      roleProviderName="AspNetSqlRoleProvider" /> 
      <serviceCredentials> 
      <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" 
       membershipProviderName="AspNetSqlMembershipProvider" /> 
      </serviceCredentials> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="false"/> 
    </system.serviceModel> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 

</configuration> 

SVC 파일을 가지고

<% @ServiceHost 
Debug="true" 
Language="C#" 
Factory="DP.IPagac.Application.LegalEntityServiceHostFactory" 
Service="ApplicationContract.ProgramLayerContract.LegalEntityApplicationService" %> 
+0

당신이 해결해야 무엇인가 "어떤 엔드 포인트가 인식하지 않습니다." 서비스가 실행되지 않는 것 같습니다. –

+0

페이지를 열 수있는 iam은 탐색기에서 .svc로 끝납니다. 달리기를 의미하는 거지? 또는 할 일이 더 많습니까? – Ivan

+0

Windows 탐색기 또는 Internet Explorer? 또한 페이지가 캐시 될 수 있습니다. –

답변

0

와 함께 https에 대한 올바른 생각을 가지고 있습니다.
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> 

그러나 내가 놓친 것을 제외하고는 소비자에게 wsdl을 제공하는 mex 끝점 (오류로 지정된)이 없습니다. 제공 추가 MEX 엔드 포인트 등 :

<services> 
    <service name="ApplicationContract.WCFContract.LegalEntityApplicationService">  
     <endpoint address="https://localhost/IPagac/LegalEntityService.svc"  
      behaviorConfiguration="NewBehavior0" binding="ws2007HttpBinding"  
      bindingConfiguration="BindingName" name="Endpoint"  
      contract="ApplicationContract.WCFContract.ILegalEntityApplicationService" />  

     <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 

    </service> 
</services> 
+0

끝 점을 추가했지만 변경 사항이 없습니다. 하지만 대답 주셔서 감사합니다. – Ivan

관련 문제