WCF:元数据包含无法解析的引用:'net.tcp:// localhost:8733 /'

时间:2017-10-22 19:58:00

标签: c# wcf wcf-security

将serviceAuthorization添加到配置文件后,出现问题。向项目添加服务时,它不会看到netTcp连接。没有serviceAuthorization一切正常。

配置:

<system.serviceModel>
        <services>
          <service behaviorConfiguration="mexBehavior" name="ChartServices.Service.ChartManagerService">
           
<endpoint address="ChartServices" binding="wsHttpBinding" bindingConfiguration="wsBindingConfig"
              name="wsBinding_UserService" contract="ChartServices.Services_Contract.IUserService" />                      
<endpoint address="ChartServices" binding="netTcpBinding" bindingConfiguration="netTcpBindingConfig"
              name="netTcp_UserService" contract="ChartServices.Services_Contract.IUserService" />                  
<endpoint address="mex" binding="mexTcpBinding" name="mexTcp"
              contract="IMetadataExchange" />           
<endpoint address="mex" binding="mexHttpBinding" name="mexHttp"
              contract="IMetadataExchange" />
            <host>
              <baseAddresses>
                <add baseAddress="net.tcp://localhost:8733/" />
                <add baseAddress="http://localhost:8734/" />
              </baseAddresses>
            </host>
          </service>
        </services>
        <bindings>
          <wsHttpBinding>
            <binding name="wsBindingConfig">
              <security mode="Message">
                <message clientCredentialType="UserName"/>
              </security>
            </binding>
          </wsHttpBinding>
          <netTcpBinding>
            <binding name="netTcpBindingConfig">
              <security mode="Message">
                <message clientCredentialType="UserName"/>
              </security>
            </binding>
          </netTcpBinding>
        </bindings>
        <behaviors>
          <serviceBehaviors>
            <behavior name="mexBehavior">
              <serviceMetadata httpGetEnabled="True"/>
              <serviceDebug includeExceptionDetailInFaults="false" />
              <serviceCredentials>
                <clientCertificate>
                  <authentication certificateValidationMode="PeerTrust" />
                </clientCertificate>
                <serviceCertificate findValue="RootCATest" storeLocation="LocalMachine"
                  storeName="My" x509FindType="FindByIssuerName" />
                <userNameAuthentication userNamePasswordValidationMode="Custom"
                  customUserNamePasswordValidatorType="ChartServices.CustomUserNameValidator, ChartServices" />
              </serviceCredentials>
              <serviceAuthorization principalPermissionMode="Custom" serviceAuthorizationManagerType="ChartServices.MyServiceAuthorizationManager, ChartServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
                <authorizationPolicies>
                  <add policyType="ChartServices.AuthorizationPolicy, ChartServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
                </authorizationPolicies>
              </serviceAuthorization>
            </behavior>
          </serviceBehaviors>
        </behaviors>
      </system.serviceModel>

尝试了不同的选项但无法解决问题

1 个答案:

答案 0 :(得分:0)

Visual Studio 2017问题!!!!!!!

https://github.com/dotnet/wcf/issues/1741

相关问题