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 IIS
- 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 IIS
- đặ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="WithDebug">
<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 - đ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ể thấy nó hoạt động bằng cách sử dụng công cụ như WCF Test Client được giao miễn phí với WCF hoặc SoapUI là tiện ích thử nghiệm SOAP có mục đích chung (với phiên bản miễn phí để bạn sử dụng).
Xem: [Làm thế nào để chủ nhà một dịch vụ WCF trong IIS] (http://msdn.microsoft.com/en-us/library/ms733766.aspx) - cho dù đó là 'localhost' hoặc bất kỳ máy chủ nào khác hoàn toàn không liên quan - chỉ cần thực hiện theo các bước đó. –