WCF - Metadaten erhalten Können
Es läuft in einem Intranet mit IIS 7 und es funktioniert gut, wenn ich die Anonyme Authentifizierung in IIS-Manager. Wenn ich es deaktivieren, und versuchen Sie zu ausführen es mit wcftestclient dann bekomme ich die folgende Fehlermeldung,
Error: Cannot obtain Metadata from http://myserver/testing/eval.svc If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange Error URI: http://myserver/testing/eval.svc Metadata contains a reference that cannot be resolved: 'http://myserver/testing/eval.svc'. The HTTP request is unauthorized with client authentication scheme 'Anonymous'.
Dies ist mein web.config-Datei,
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="Binding1">
<security mode="Transport">
<transport clientCredentialType="Windows" />
<message establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
<basicHttpBinding>
<binding name="httpBinding">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="ServiceBehavior" name="EvalServiceLibrary.EvalService">
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="Binding1" contract="EvalServiceLibrary.IEvalService">
<identity>
<dns value="myserver.mydomain.com" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<endpoint address="basic" binding="basicHttpBinding" contract="EvalServiceLibrary.IEvalService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="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="false" />
</behavior>
</serviceBehaviors>
</behaviors>
Wie Sie sehen können ich bin das Auffüllen von Metadaten mithilfe von mexHttpBinding Endpunkt. Also jeder Rat ist willkommen.
Danke,
m0dest0.
InformationsquelleAutor m0dest0 | 2012-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entfernen Sie die MEX-Endpunkt und lassen . Mex-Endpunkte erfordern die anonymous-Authentifizierung aktiviert sein.
InformationsquelleAutor Javi
Javi hatte Recht, ich hatte zu entfernen die mex-Endpunkt und nur für die Akten, das ist die final version des web.config:
mehr details hier
IIS gehosteten WCF-Dienst + Windows auth in IIS + TransportCredentialOnly/Windows-auth in "basicHttpBinding"
InformationsquelleAutor m0dest0