У меня есть служба WCF и я размещаю ее в службе Windows.Действительно ли basicHttpBinding требуется при экспорте службы WCF в качестве веб-службы для целевого клиента .NET 2.0?
Я попытался добавить ссылку для службы с клиента Windows Form, основанного на .NET 2.0. Я могу получить веб-ссылку, указав на httpGetUrl = "http: // localhost: 8002/HBAccess/help/mex", но когда я проверяю Reference.cs --- Он содержит только пространство имен, в котором ничего нет.
Теперь добавьте BasicHttpBinding и повторите те же действия:
И теперь я могу видеть классы для веб-службы.
Мой старший коллега настаивает на том, что установка httpGetEnabled в true будет достаточной для экспорта службы WCF через http и создания правильной ссылки в Интернете.
Может ли кто-нибудь указать мне на то, что мне не хватает здесь?
<system.serviceModel>
<services>
<service behaviorConfiguration="HBAcsNX.HBAccessBehavior" name="HBAcsNX.HBAccess">
<!--<endpoint address="" binding="basicHttpBinding" contract="HBAcsNX.HBAccess" />-->
<endpoint address="HBAccess" binding="netTcpBinding" contract="HBAcsNX.HBAccess" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:18264/HBAccess/" />
<add baseAddress="http://localhost:8002/HBAccess/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="HBAcsNX.HBAccessBehavior">
<serviceDebug includeExceptionDetailInFaults="True" httpHelpPageUrl="http://localhost:8002/HBAccess/help" />
<serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8002/HBAccess/help/mex" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
// Результирующий Reference.cs (Empty прокси заглушки только с пространством имен)
#pragma warning disable 1591
namespace Form.ServiceClient {
}
#pragma warning restore 1591
Я просто попытался что вы предложили и веб-службы не могли до сих пор можно найти в HTTP: // локальный : 8002/HBAccess/mex URI – Nap