Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Чтобы настроить конечную точку службы WCF для взаимодействия с клиентами веб-служб ASP.NET:
Используйте тип System.ServiceModel.BasicHttpBinding в качестве типа привязки для конечной точки службы.
Не используйте функции обратного вызова и контракт сеанса или поведение транзакций в конечной точке службы.
При необходимости можно включить поддержку httpS и проверки подлинности клиента на уровне транспорта в привязке.
Для следующих особенностей класса требуются функции, выходящие за пределы базового профиля WS-I BasicHttpBinding 1.1.
Механизм оптимизации передачи сообщений (MTOM) и кодирование сообщений, управляемое свойством BasicHttpBinding.MessageEncoding. Оставьте это свойство по умолчанию в значении WSMessageEncoding.Text, чтобы не использовать MTOM.
Безопасность сообщений, контролируемая значением BasicHttpBinding.Security, обеспечивает поддержку WS-Security в соответствии с WS-I базовым профилем безопасности 1.0. Оставьте это свойство со значением по умолчанию SecurityMode.Transport, чтобы не использовать WS-Security.
Чтобы сделать метаданные для службы WCF доступными для ASP.NET, используйте средства создания клиентов веб-службы: средство языка описания веб-служб (Wsdl.exe), средствообнаружения веб-служб (Disco.exe), а также функцию добавления веб-ссылки в Visual Studio. Включите публикацию метаданных. Дополнительные сведения см. в разделе "Публикация конечных точек метаданных".
Пример
Описание
В следующем примере кода показано, как добавить конечную точку WCF, совместимую с клиентами веб-службы ASP.NET в коде, а также в файле конфигурации.
Код
using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Description;
[ServiceContract]
public interface IEcho
{
[OperationContract]
string Echo(string s);
}
public class MyService : IEcho
{
public string Echo(string s)
{
return s;
}
}
class Program
{
static void Main(string[] args)
{
string baseAddress = "http://localhost:8080/wcfselfhost/";
ServiceHost host = new ServiceHost(typeof(MyService), new Uri(baseAddress));
// Create a BasicHttpBinding instance
BasicHttpBinding binding = new BasicHttpBinding();
// Add a service endpoint using the created binding
host.AddServiceEndpoint(typeof(IEcho), binding, "echo1");
host.Open();
Console.WriteLine($"Service listening on {baseAddress} . . .");
Console.ReadLine();
host.Close();
}
}
Imports System.Collections.Generic
Imports System.Text
Imports System.ServiceModel
Imports System.ServiceModel.Description
<ServiceContract()> _
Public Interface IEcho
<OperationContract()> _
Function Echo(ByVal s As String) As String
End Interface
Public Class MyService
Implements IEcho
Public Function Echo(ByVal s As String) As String Implements IEcho.Echo
Return s
End Function
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim baseAddress = "http://localhost:8080/wcfselfhost/"
Dim host As New ServiceHost(GetType(MyService), _
New Uri(baseAddress))
' Add a service endpoint using the created binding
With host
.AddServiceEndpoint(GetType(IEcho), _
New BasicHttpBinding(), _
"echo1")
.Open()
Console.WriteLine("Service listening on {0} . . .", _
baseAddress)
Console.ReadLine()
.Close()
End With
End Sub
End Class
<configuration>
<system.serviceModel>
<services>
<service name="MyService" behaviorConfiguration="HttpGetMetadata">
<endpoint address="echo2" contract="IEcho" binding="basicHttpBinding" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="HttpGetMetadata">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>