Masz w zasadzie dwie opcje, wierzę:
Wariant 1 - "bin" wdrożyć (opcja preferowana)
- skompilować usługę WCF w DLL (biblioteki klas)
- stworzenie strony internetowej w IIS6
- skopiować WCF DLL do
.\bin
folderze witryny
- stworzyć
*.svc
plik w tej witrynie
- dodać odpowiednią
web.config
w folderze strony, aby zdefiniować swoje punkty końcowe i konfigurację usługi itp
Usługa WCF będzie teraz osiągalny pod adresem bazowej witryny, plus nazwa *.svc
plik, np
http://myserver/someweb/Myservice.svc
Twój *.svc
będzie wyglądać mniej więcej tak:
<%@ ServiceHost Language="C#" Debug="true"
Service="WCF_Simple_Service.HelloIndigoService" %>
The Service=
atrybuty oznacza klasę wykonawczą służby - pełną z jego nazw.
Wariant 2 - umieścić rzeczy w App_Code
- stworzyć stronę internetową w IIS6
- umieścić wszystkie swoje WCF związane
*.cs
pliki bezpośrednio do folderu .\App_Code
- utworzyć plik
*.svc
w tej witrynie
- dodać odpowiedni folder
web.config
do zdefiniowania punktów końcowych i konfiguracji usług itp.
Twoja usługa WCF będzie teraz dostępna pod adresem bazowym witryny, a także pod nazwą pliku *.svc
, np.
http://myserver/someweb/Myservice.svc
Twój *.svc
będzie wyglądać mniej więcej tak:
<%@ ServiceHost Language="C#" Debug="true"
Service="Service"
CodeBehind="~/App_Code/Service.cs" %>
Prosty, próbka web.config
może wyglądać mniej więcej tak:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="WithDebug">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<services>
<service name="SimpleWCF.HelloIndigoService" behaviorConfiguration="true">
<endpoint
address=""
binding="basicHttpBinding"
contract="SimpleWCF.IHelloIndigoService" />
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
Zasadniczo zdefiniować tag <service>
- i znowu: name=
oznacza klasę implementującą usługę - pełną kwalifikację z jej przestrzenią nazw. Musi zawierać co najmniej jeden punkt końcowy - ponieważ protokół IIS6 obsługuje tylko protokół HTTP, można użyć numeru basicHttpBinding
lub wsHttpBinding
i to wszystko, co istnieje. Punkt końcowy "mex" jest opcjonalny, ale bardzo przydatny, szczególnie do programowania i testowania. Pozwala to klientowi "odkryć" usługę i uzyskać jej opis usługi, aby mógł się z nią połączyć.
Gdy usługa jest wdrażane w IIS, można zobaczyć go w akcji za pomocą narzędzia jak WCF Test Client że statki za darmo z WCF lub SoapUI który jest narzędziem do testowania SOAP ogólnego przeznaczenia (z bezpłatnej wersji dla was posługiwać się).
Patrz: http://www.youtube.com/watch?v=mX8quq7MoeI –
lub MSDN tutaj: http://msdn.microsoft.com/en-us/library/ms733766.aspx –