2014-07-10 13 views
8

Có cách nào để lưu trữ dịch vụ WCF trên Linux không. Tôi đã đọc về rượu nhưng tôi không thấy bất kỳ ví dụ nào về việc lưu trữ dịch vụ WCF với nó.Dịch vụ WCF Hosting trên linux

P.S: Tôi đã thử mono và mod_mono nhưng không có kết quả.

+1

"không có lịch phát sóng" không phải là cách thích hợp để mô tả vấn đề của bạn trong ngăn xếp, vui lòng giải thích sự cố bạn gặp phải khi thử mono và mod_mono. – knocte

+0

Rượu sẽ không thể phục vụ bạn, vì phiên bản Windows của WCF móc đến IIS rất nhiều, điều này không thể được chuyển qua Wine. Hãy xem câu trả lời của @ Thinkster và điều chỉnh WCF của bạn theo chế độ đơn giản và được hỗ trợ mà Mono có thể hỗ trợ. Sau đó, bạn có thể lưu trữ nó trên Linux. Tất nhiên nó được khuyến khích để chuyển sang ASP.NET Web API nếu bạn muốn hỗ trợ lớp học đầu tiên. –

Trả lời

13

Bạn có thể lưu trữ nó trong một ứng dụng giao diện điều khiển độc lập như sau:

using System; 
using System.ServiceModel; 
using Service; 

namespace Host 
{ 
    class MainClass 
    { 
     public static void Main (string[] args) 
     { 
      Console.WriteLine ("WCF Host!"); 
      var binding = new BasicHttpBinding(); 
      var address = new Uri ("http://localhost:8080"); 
      var host = new ServiceHost (typeof(GreeterWcfService)); 
      host.AddServiceEndpoint (
       typeof(IGreeterWcfService), binding, address); 
      host.Open(); 

      Console.WriteLine ("Type [CR] to stop..."); 
      Console.ReadLine(); 
      host.Close(); 
     } 
    } 
} 

đâu GreeterWcfService là lớp dịch vụ WCF bản thân và IGreeterWcfService là hợp đồng dịch vụ.

Full working example solution in GitHub - với các dự án riêng biệt cho dịch vụ, lưu trữ và khách hàng. Kiểm tra nó ra.

1

Có thể nhưng bạn nên tham khảo liên kết này để hiểu trạng thái hiện tại và các vấn đề đã biết - http://www.mono-project.com/docs/web/wcf/. Nó bị giới hạn. Ví dụ: nếu bạn muốn sử dụng WSHttpBinding, hiện tại nó không được hỗ trợ.

Các vấn đề liên quan