Tôi đang tiêu thụ một wsdl được xác định trước với svcutil a la:Net 4.5 Svcutil tạo ra hai hoạt động có cùng tên (Phương pháp và MethodAsync)
svcutil some_service.wsdl
một trong những phương pháp được tạo ra có chữ ký sau đây:
[System.ServiceModel.OperationContractAttribute(Action="http://ws.example.org/SubmitData", ReplyAction="*")]
SubmitDataResponse SubmitData(SubmitDataRequest request)
trong khi scvutil từ VS2010/.net35 chỉ tạo ra ở trên và VS không có vấn đề lanuching dịch vụ, chương trình svcutil là một phần của VS2012/.net45 cũng tạo ra một phương pháp với chữ ký
[System.ServiceModel.OperationContractAttribute(Action="http://ws.example.org/SubmitData", ReplyAction="*")]
Task<SubmitDataResponse> SubmitDataAsync(SubmitDataRequest request);
Điều này gây ra một ngoại lệ thời gian chạy:
System.InvalidOperationException: Không thể có hai hoạt động trong cùng một hợp đồng có cùng tên, phương pháp SubmitDataAsync và SubmitData trong loại MyType vi phạm quy tắc này. Bạn có thể thay đổi tên của một trong các hoạt động bằng cách thay đổi tên phương thức hoặc bằng cách sử dụng thuộc tính Tên của OperationContractAttribute.
Tôi có thể giải quyết vấn đề này bằng cách xóa phương thức được thêm vào Không đồng bộ hoặc chỉ cần sử dụng svcutil từ VS2010. Nhưng tôi tự hỏi tại sao svcutil tạo ra một giao diện gây ra một ngoại lệ thời gian chạy (là một lỗi này?), Và liệu có cái gì đó bổ sung tôi phải làm để làm cho nó hoạt động.
Cách giải quyết khác: sử dụng cờ dòng lệnh '/ async-'. –
Khung thời gian chạy của bạn là gì? Có lẽ đó là một hạn chế không có trong khung sau này –
@JamesManning Các mục tiêu lắp ráp .Net 4.5 – vossad01