Số lần thử đầu tiên của tôi khi tạo dịch vụ tự lưu trữ. Cố gắng để làm một cái gì đó lên mà sẽ chấp nhận một chuỗi truy vấn và trả về một số văn bản nhưng có có một vài vấn đề:Dịch vụ lưu trữ tự WCF - Điểm cuối trong C#
Tất cả các cuộc đàm phán tài liệu về thiết bị đầu cuối được tạo ra tự động cho mỗi địa chỉ cơ sở nếu chúng không được tìm thấy trong một cấu hình tập tin. Điều này dường như không đúng với tôi, tôi nhận được ngoại lệ "Dịch vụ không có điểm cuối ứng dụng ...". Chỉ định một endpoint cơ sở như sau dường như để giải quyết này:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Description; namespace TestService { [ServiceContract] public interface IHelloWorldService { [OperationContract] string SayHello(string name); } public class HelloWorldService : IHelloWorldService { public string SayHello(string name) { return string.Format("Hello, {0}", name); } } class Program { static void Main(string[] args) { string baseaddr = "http://localhost:8080/HelloWorldService/"; Uri baseAddress = new Uri(baseaddr); // Create the ServiceHost. using (ServiceHost host = new ServiceHost(typeof(HelloWorldService), baseAddress)) { // Enable metadata publishing. ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); smb.HttpGetEnabled = true; smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15; host.Description.Behaviors.Add(smb); host.AddServiceEndpoint(typeof(IHelloWorldService), new BasicHttpBinding(), baseaddr); host.AddServiceEndpoint(typeof(IHelloWorldService), new BasicHttpBinding(), baseaddr + "SayHello"); //for some reason a default endpoint does not get created here host.Open(); Console.WriteLine("The service is ready at {0}", baseAddress); Console.WriteLine("Press <Enter> to stop the service."); Console.ReadLine(); // Close the ServiceHost. host.Close(); } } } }
Làm thế nào tôi sẽ đi về thiết lập này để trả lại giá trị của tên trong SayHello (string name) khi được yêu cầu thusly: localhost: 8080/HelloWorldService/? tên SayHello = kyle
tôi đang cố gắng để đi trước khi chạy, nhưng điều này chỉ có vẻ như bò ...
Bạn đang sử dụng .NET 3.5 hoặc .NET 4 ?? Tính năng "tạo điểm cuối mặc định cho địa chỉ cơ sở" là một tính năng mới trong .NET 4 - sẽ không hoạt động ở 3,5 –