Хорошо, этот действительно вызвал у меня трудности с разрешением, за которые я пощадлю других.
Проблема заключалась в том, что я использовал <%@ ServiceHost Factory="System.ServiceModel.Activation.WebServiceHostFactory" Service="fullyQualifiedClassName" %>
, который является хорошим и простым подходом к реализации на заводе.
Однако у этого подхода есть свои недостатки; поскольку в файле web.config не требуется настройка, класс WebServiceHostFactory по своему дизайну никогда не считывает данные из файла web.config.
Я знаю; Я мог бы унаследовать от этого класса и внести соответствующие изменения, чтобы он действительно мог читать из файла конфигурации, но это, казалось, немного выходило за рамки.
Моим решением было вернуться к более традиционному способу реализации WCF; <%@ ServiceHost Service="fullyQualifiedClassName" CodeBehind="~/App_Code/Catalogue.cs" %>
, а затем используйте мои уже настроенные значения в файле web.config.
Вот мой измененный файл web.config (в отношении головной боли Maddox):
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="XmlMessageBinding" maxReceivedMessageSize="5000000" maxBufferPoolSize="5000000" maxBufferSize="5000000" closeTimeout="00:03:00" openTimeout="00:03:00" receiveTimeout="00:10:00" sendTimeout="00:03:00">
<readerQuotas maxStringContentLength="5000000" maxArrayLength="5000000" maxBytesPerRead="5000000" />
<security mode="None"/>
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="fullyQualifiedClassName" behaviorConfiguration="DevelopmentBehavior">
<endpoint name="REST" address="" binding="webHttpBinding" contract="fullyQualifiedInterfaceName" behaviorConfiguration="RestEndpointBehavior" bindingConfiguration="XmlMessageBinding" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="RestEndpointBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="DevelopmentBehavior">
<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true"/>
<serviceMetadata httpGetEnabled="true"/>
</behavior>
<behavior name="ProductionBehavior">
<serviceDebug httpHelpPageEnabled="false" includeExceptionDetailInFaults="false"/>
<serviceMetadata httpGetEnabled="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Еще одно преимущество этого изменения заключается в том, что теперь вы можете ссылаться на свою службу WCF-отдыха непосредственно из .NET; это невозможно сделать с помощью модели Factory и моей реализации XmlElement с помощью решения.
Я надеюсь, что это может помочь другим с похожими проблемами ...