Warum behebt AspNetCompatibilityRequirementsMode.Allowed diesen Fehler?

War ich auf der Suche um zu versuchen ein problem zu lösen, ich habe mit WCF. Ich bin ganz neu WCF so war ich nicht sicher, was genau Los war.

Ich benutze Visual Studio 2010 und haben Neue Web-Site->WCF-Dienst. Ich meine service und in der config-Datei, wenn ich aspNetCompatibilityEnabled="true" würde ich bekomme diese Fehlermeldung, wenn man auf den Dienst über meine web-browser.

The service cannot be activated because it does not support ASP.NET compatibility.
ASP.NET compatibility is enabled for this application. Turn off ASP.NET compatibility mode in the web.config
or add the AspNetCompatibilityRequirements attribute to the service type with RequirementsMode 
setting as 'Allowed' or 'Required'.

Ich verstehe nicht, was das bedeutet. Warum aspNetCompatibilityEnabled="true" diesen Fehler verursachen, wenn [AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)] behebt es.

Mir, Sie klingen wie Sie das gleiche tun. Auch ohne das Attribut silverlight war nicht in der Lage, um meine WCF-Methoden. Warum ist das so?

Hier ist meine config Datei (falls erforderlich):

<?xml version="1.0"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <customErrors mode="Off"/>
  </system.web>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="LargeBuffer" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
      </basicHttpBinding>
    </bindings>
    <services>
      <service name="Services.Exporter">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="LargeBuffer"
          contract="Services.IExporter" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment
      multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

Also meine Frage ist, warum das hinzufügen der Kompatibilität Attribut beheben? Auch, warum war es notwendig für silverlight zu haben?

InformationsquelleAutor der Frage Justin | 2012-03-20

Schreibe einen Kommentar