Hallo zusammen,
ich hab ein Problem : IIS 7.5 WCF Service , konfiguriert in der Web.Config
Das ServiceInterface sieht so aus :
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="meinNS", ConfigurationName="meinService")]
public interface meinAppContract
Die Config sieht so aus :
<services>
<service name="meinService">
<endpoint binding="basicHttpBinding" bindingConfiguration="appBinding"
contract="meinAppContract">
</endpoint>
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex">
</endpoint>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding closeTimeout="00:10:00"
openTimeout="00:10:00"
sendTimeout="00:10:00"
maxReceivedMessageSize="2147483647"
maxBufferPoolSize="2147483647"
useDefaultWebProxy="true">
<readerQuotas maxArrayLength="2147483647"
maxStringContentLength="2147483647"
maxBytesPerRead="2147483647"
maxDepth="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
<binding name="ExpBinding"
closeTimeout="00:10:00"
openTimeout="00:10:00"
sendTimeout="00:10:00"
maxReceivedMessageSize="2147483647"
maxBufferPoolSize="2147483647"
useDefaultWebProxy="true">
<readerQuotas maxArrayLength="2147483647"
maxStringContentLength="2147483647"
maxBytesPerRead="2147483647"
maxDepth="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
<binding name="appBinding"
closeTimeout="00:10:00"
openTimeout="00:10:00"
sendTimeout="00:10:00"
maxReceivedMessageSize="2147483647"
maxBufferPoolSize="2147483647"
useDefaultWebProxy="true"
messageEncoding="Mtom"
maxBufferSize="10485760">
<readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
So nun das Problem : Der Service "meinService" nimmt nicht die benamte Config sondern einfach immer die erste die er findet, egal ob ich nen Namen setze oder nicht.
Das heißt, mtom zB wird nicht aktiviert.
hat jmd eine Idee?
ConfigurationName entspricht dem ContractName (contract="meinAppContract"
) und nicht der ServiceName.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
ConfigurationName entspricht dem ContractName (
contract="meinAppContract"
) und nicht der ServiceName.
Hi Abt,
sorry da habe ich beim ersetzen durch anonyme namen einen Fehler gemacht. Bei uns ist der SeviceName = dem Confignamen
Grüße
Probiert habe ich auch schon,dass ich beim ServiceContract den namen entferne, sodass er nur den Contract in der Config sucht, ohne Namen.
Hilft auch nicht, das Endpunktbinding wird ignoriert
Neue Beobachtung:
Egal welcher Service/Client : im BasicHttpBinding muss ein Binding ohne Namen sein, sonst nimmt er gar kein Binding....
Ich verzweifel langsam
Ich bin ehrlich: ich halte nichts von der Config.
Siehe auch Einfaches WCF-Beispiel ohne komplizierte Config
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo Benjamin,
ich halte allgemein nix von WCF , Configuration Hell.
Problem ist wir müssen es nutzen oder alte asmx WebServices.
Und wir müssen gewisse Parameter vorgeben.
ich habe das Probelm aber nun gelöst :
Im Service Namen muss die implementierung des Services eingetragen werden.
Grüße
Ahri
WCF ist super. Wirklich.
Aber die Konfiguration ist eine Wissenschaft für sich.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ich halte ja mehr von der WebApi, aber das passt nicht mehr in den Thread.
Problem ist ja nun zum Glück gelöst 😃
Hallo Ahrimaan,
Im Service Namen muss die implementierung des Services eingetragen werden.
Das macht so auch Sinn.
Als Tipp: Bei der WCF-Konfig. ist es oft hilfreich zu überlegen wie man es selbst gelöst hätte - falls man WCF auch selbst implementiert hätte - und was man selbst aus der Konfig lesen würde. Dann ist vieles weniger verwirrend und manchmal auch trivial lösbar.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"