Bạn có về cơ bản hai lựa chọn, tôi tin rằng:
Lựa chọn 1 - "bin" triển khai (tùy chọn ưa thích)
- biên dịch dịch vụ WCF của bạn thành một DLL (thư viện lớp)
- tạo một trang web trong IIS6
- sao chép WCF DLL vào thư mục
.\bin
của trang web
- tạo một
*.svc
tập tin trong trang web mà
- thêm một thích hợp
web.config
trong thư mục trang web để xác định điểm cuối của bạn và cấu hình dịch vụ vv
dịch vụ WCF của bạn bây giờ sẽ có thể truy cập tại địa chỉ cơ sở của trang web, cộng với tên của *.svc
tệp, ví dụ
http://myserver/someweb/Myservice.svc
bạn *.svc
sẽ giống như thế này:
<%@ ServiceHost Language="C#" Debug="true"
Service="WCF_Simple_Service.HelloIndigoService" %>
Các Service=
thuộc tính biểu thị lớp thực hiện dịch vụ - đầy đủ với không gian tên của nó.
Lựa chọn 2 - đưa công cụ vào App_Code
- tạo một trang web trong IIS6
- đặt tất cả WCF của bạn liên quan
*.cs
tập tin trực tiếp vào thư mục .\App_Code
- tạo một file
*.svc
trong trang web mà
- thêm
web.config
thích hợp vào thư mục trang web để xác định điểm cuối và cấu hình dịch vụ của bạn, v.v.
Dịch vụ WCF của bạn giờ đây sẽ có thể truy cập được tại địa chỉ cơ sở của trang web, cùng với tên của tệp *.svc
, ví dụ:
http://myserver/someweb/Myservice.svc
bạn *.svc
sẽ giống như thế này:
<%@ ServiceHost Language="C#" Debug="true"
Service="Service"
CodeBehind="~/App_Code/Service.cs" %>
Một đơn giản, mẫu web.config
có thể trông như thế này:
<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>
Bạn về cơ bản xác định thẻ <service>
của bạn - và một lần nữa: name=
biểu thị lớp đang triển khai dịch vụ - hoàn toàn đủ điều kiện với không gian tên của nó. Nó phải chứa ít nhất một điểm cuối - vì IIS6 chỉ hỗ trợ HTTP, bạn có thể sử dụng basicHttpBinding
hoặc wsHttpBinding
và đó là tất cả những gì có. Điểm cuối "mex" là tùy chọn - nhưng rất hữu ích, đặc biệt là để phát triển và thử nghiệm. Nó cho phép khách hàng "khám phá" dịch vụ và nhận được mô tả dịch vụ của nó để nó có thể giao tiếp với nó.
Khi dịch vụ của bạn được triển khai trong IIS, bạn có thể nhìn thấy nó trong hành động sử dụng một công cụ như WCF Test Client rằng tàu miễn phí với WCF, hoặc SoapUI mà là một tiện ích đa năng thử nghiệm SOAP (với một phiên bản miễn phí để bạn có thể sử dụng).
Xem: http://www.youtube.com/watch?v=mX8quq7MoeI –
Hoặc MSDN tại đây: http://msdn.microsoft.com/en-us/library/ms733766.aspx –