Windows Communication Foundation/Хостинг WCF-сервиса на IIS: различия между версиями

Содержимое удалено Содержимое добавлено
→‎Пример: дополнение, викификация, оформление
Строка 1:
Для описания [[хостинг]]а [[Windows Communication Foundation|WCF]]-[[сервис]]а на [[w:IIS|IIS]] рассмотрим пример по шагам.
==Пример==
#* Убедитесь, что на вашем [[w:компьютер|компьютер]]е установлен и запущен [[w:IIS|IIS]].
#* Создайте папку для приложения с названием IISHostedCalcService, например, "C:\Temp\IISHostedCalcService\" (далее - "папка приложения"). Для этой папки необходимо дать полный доступ для учётной записи [[w:ASP.NET|ASP.NET]].
#* Используя [[IIS Manager]] создайте на Default Web Site новое приложение (в контексном меню Add Aplication). В поле "Alias" введите IISHostedCalc, а в поле "Physical Path" полный путь к папке для приложения, в данном случае "C:\Temp\IISHostedCalcService\".
#* В директории приложения ("C:\Temp\IISHostedCalcService\") создайте файл '''"service.svc"'''. Измените его содержимое на следующий [[w:код|код]]:
<code>
<pre><%@ServiceHost language=c# Debug="true" Service="Microsoft.ServiceModel.Samples.CalculatorService"%></pre>
</code>
#* С помощью [[IIS Manager]] создайте поддиректорию в директории приложения. Для этого нужно в IISHostedCalc из контексного меню выбрать Add Virtual Directory, в появившемся окне в поле "Alias" написать App_Code, в поле Physical Path написать "C:\Temp\IISHostedCalcService\App_Code".
#* В папке приложения создайте файл с именем '''"web.config"''' и следующим содержимым:
<code>
 
<presource lang="xml"><?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
Строка 23 ⟶ 22 :
</services>
</system.serviceModel>
</configuration></presource>
 
</code>
* В папке "C:\Temp\IISHostedCalcService\App_Code" создайте файл "service.cs" со следующим содержимым:
 
<source lang="csharp">using System;
using System.ServiceModel;
 
namespace Microsoft.ServiceModel.Samples
{
 
[ServiceContract]
public interface ICalculator
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}
 
 
public class CalculatorService : ICalculator
{
public double Add(double n1, double n2)
{
return n1 + n2;
}
public double Subtract(double n1, double n2)
{
return n1 - n2;
}
public double Multiply(double n1, double n2)
{
return n1 * n2;
}
public double Divide(double n1, double n2)
{
return n1 / n2;
}
}
}</source>