2009-01-14 38 views
6

Một vấn đề phổ biến đối với WCF dường như là cách tên máy chủ được giải quyết trong wsdl cho các liên kết đến các tệp khác. Vấn đề là tên máy của máy tính được đặt vào wsdl để liên kết các tệp wsdl khác, vì vậy nếu bạn truy cập http://myhost/service.svc nó có thể trỏ đến phần còn lại của wsdl trên một vị trí khác, tức là http://mypc/service.svc?wsdl. bạn không thể thấy bên ngoài.Địa chỉ vị trí WCF WSDL với HTTPS

Có một vài giải pháp hiện có cho điều này, đây là một giải pháp phổ biến. Nơi bạn có thể thiết lập tiêu đề máy chủ.

Câu hỏi của tôi là, làm thế nào tôi có thể làm việc xung quanh này khi sử dụng một IP bên ngoài. Tôi đang kết nối với một khách hàng đầu văn phòng từ trang web của họ để lấy dữ liệu, nó không thiết lập với một dns vv và ip lại tuyến đến một máy nội bộ. Có cách nào để buộc máy lưu trữ WCF để trình bày địa chỉ bên ngoài trong các tập tin wsdl chứ không phải là tên máy?

Tôi đang sử dụng SSL cho kết nối, điều này có thể tạo sự khác biệt (giống như với tiêu đề máy chủ lưu trữ).

Trả lời

4

Bạn cần định cấu hình tiêu đề máy chủ cho secureBingings của trang web trong IIS.

Đây là một bài viết về WCF WSDL & xsd:import schemaLocations link to local machine name not domain name while hosted in IIS

+0

Cảm ơn bạn đã trả lời, nhưng điều đó chỉ bao gồm các tình huống mà một tên máy chủ thay thế được sử dụng. Nó không giải quyết được câu hỏi về việc sử dụng IP để truy cập webservice. – dnolan

+0

Bạn đã cố thêm IP ngoài thứ ba vào tiêu đề máy chủ, ví dụ: \ Securebindings "443: ip.ip.ip.ip"? –

0

Có, bạn có thể thiết lập một địa chỉ IP như tiêu đề chủ. Chỉ cần đảm bảo rằng địa chỉ IP bên ngoài thực sự được nhận diện trong nội bộ. Tôi đã học được điều này một cách khó khăn khi ở một trong các dự án của chúng tôi, chúng tôi đang sử dụng ISA Server làm proxy.

Nếu bạn gặp phải tình huống như vậy và bạn vẫn yêu cầu sử dụng địa chỉ IP bên ngoài làm tiêu đề máy chủ, thì bạn chỉ có tùy chọn thêm tên máy của dịch vụ web vào tệp lưu trữ.

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