Хорошо, давайте займемся этим:
Сначала , вам нужно определить пользовательскую basicHttpBinding
конфигурацию привязки с некоторыми пользовательскими настройками:
<bindings>
<basicHttpBinding>
<binding name="LargeSettings"
maxBufferSize="524288"
maxBufferPoolSize="524288"
maxReceivedMessageSize="6553600">
<readerQuotas maxDepth="32" maxStringContentLength="100000"
maxArrayLength="16384" maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
Этот раздел должен находиться как в файле на стороне сервера web.config , так и в конфигурации стороны клиента .
Во-вторых , на серверной стороне вам необходим тег <services>
, который определяет вашу службу, ее конечные точки и их конфигурацию:
<services>
<service name="YourNamespace.YourClassName"
behaviorConfiguration="ServiceWithMetadata">
<endpoint name="Default"
address="http://localhost:53931/WCF/Service1.svc"
binding="basicHttpBinding"
bindingConfiguration="LargeSettings"
contract="YourNamespace.IServiceContract" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceWithMetadata">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
Очки для проверки:
- ваше имя службы должно быть полностью определенным именем (
YourNamespace.YourClassName
) вашего класса обслуживания - класса, реализующего ваш контракт на обслуживание
- ваш контракт на обслуживание в конечной точке также должен быть полностью квалифицированным названием вашего контракта на обслуживание (
YourNamespace.IYourServiceContract
)
- имя_конфигурации вашего тега
<service>
должно ссылаться и точно соответствовать атрибуту name=
, как определено в разделе <behaviors>
И в-третьих , на стороне клиента вам нужно что-то вроде этого:
<client>
<endpoint name="Default"
address="http://localhost:53931/WCF/Service1.svc"
binding="basicHttpBinding"
bindingConfiguration="LargeSettings"
contract="ServiceReference.IYourService" />
</client>
Вам нужно сослаться на конечную точку, определенную в определении вашей службы на стороне сервера, вам нужно использовать ту же конфигурацию привязки и привязки, и вам нужно использовать контракт на обслуживание, как определено в вашей ссылке на службу.