Laden...

WCF Konfiguration wird nicht gewählt

Erstellt von Ahrimaan vor 9 Jahren Letzter Beitrag vor 9 Jahren 2.638 Views
A
Ahrimaan Themenstarter:in
350 Beiträge seit 2010
vor 9 Jahren
WCF Konfiguration wird nicht gewählt

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?

16.835 Beiträge seit 2008
vor 9 Jahren

ConfigurationName entspricht dem ContractName (contract="meinAppContract") und nicht der ServiceName.

A
Ahrimaan Themenstarter:in
350 Beiträge seit 2010
vor 9 Jahren

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

A
Ahrimaan Themenstarter:in
350 Beiträge seit 2010
vor 9 Jahren

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

A
Ahrimaan Themenstarter:in
350 Beiträge seit 2010
vor 9 Jahren

Neue Beobachtung:

Egal welcher Service/Client : im BasicHttpBinding muss ein Binding ohne Namen sein, sonst nimmt er gar kein Binding....

Ich verzweifel langsam

16.835 Beiträge seit 2008
vor 9 Jahren

Ich bin ehrlich: ich halte nichts von der Config.
Siehe auch Einfaches WCF-Beispiel ohne komplizierte Config

A
Ahrimaan Themenstarter:in
350 Beiträge seit 2010
vor 9 Jahren

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

16.835 Beiträge seit 2008
vor 9 Jahren

WCF ist super. Wirklich.
Aber die Konfiguration ist eine Wissenschaft für sich.

A
Ahrimaan Themenstarter:in
350 Beiträge seit 2010
vor 9 Jahren

Ich halte ja mehr von der WebApi, aber das passt nicht mehr in den Thread.
Problem ist ja nun zum Glück gelöst 😃

6.911 Beiträge seit 2009
vor 9 Jahren

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!"