Меня недавно попросили подключиться к стороннему веб-сервису (* .asmx). Я создал новый веб-сайт ASP.NET и использовал мастер для создания ссылки на Сервис. Когда я пошел позвонить в службу, код пожаловался, что не знает, какую конечную точку использовать.
Я посмотрел в файле Web.config и, конечно же, мастер создал две привязки и, следовательно, две конечные точки. При добавлении любой конечной точки к сервисному вызову все работает отлично.
Тогда мой вопрос просто призван помочь мне понять, почему у меня есть две привязки, и если есть какая-то причина, по которой я должен использовать одну поверх другой? Или я должен удалить один, и если да, то какой?
Привязки для меня выглядят совершенно по-разному, и я предполагаю, что используются два разных протокола (но оба они помечены как SOAP, так что ...). Я очень "ориентирован на передний конец" и не очень часто вмешиваюсь в механику бэкэнда, поэтому я и спрашиваю. Я выложу привязки ниже.
<bindings>
<basicHttpBinding>
<binding name="ServiceSoap" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
<customBinding>
<binding name="ServiceSoap12">
<textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
messageVersion="Soap12" writeEncoding="utf-8">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</textMessageEncoding>
<httpTransport manualAddressing="false" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous"
bypassProxyOnLocal="false" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard"
keepAliveEnabled="true" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous"
realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
useDefaultWebProxy="true" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://someURL.asmx" binding="basicHttpBinding"
bindingConfiguration="ServiceSoap" contract="ServiceReference.ServiceSoap"
name="ServiceSoap" />
<endpoint address="http://someURL.asmx" binding="customBinding"
bindingConfiguration="ServiceSoap12" contract="ServiceReference.ServiceSoap"
name="ServiceSoap12" />
</client>