Tôi chỉ học wcf và không thể hiểu một điều rất cơ bản.wcf địa chỉ tương đối điểm cuối
Tôi đang tạo một dịch vụ WCF mà tôi muốn được lưu trữ trong IIS giống như ứng dụng web với đường dẫn riêng của nó như http://myhost/myapp/
và mọi thứ.
tôi là tạo ra các dự án dịch vụ WCF trong VS, tôi đã có một tập tin *.svc
mô tả nó, sau đó tôi định nghĩa một thiết bị đầu cuối đơn giản để nó như thế:
<endpoint address=""
binding="basicHttpBinding"
contract="wcf_service_auth.IPshService" />
Sau đó, tôi công bố dịch vụ này như một Ứng dụng web IIS vào một thư mục ảo, giả sử tên của nó là psh_pub
, vì vậy tôi có thể truy cập dịch vụ qua url http://localhost/psh_pub/pshservice.svc/
. Nó cho tôi thấy trang chào WCF và cung cấp cho tôi một liên kết đến WSDL, cung cấp cho tôi mô tả wsdl chính xác.
OK.
Bước tiếp theo - Tôi muốn thêm điểm cuối MEX. Tôi thêm vào cấu hình:
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
Đó là ok quá, các thiết bị đầu cuối có thể truy cập tại địa chỉ http://localhost/psh_pub/pshservice.svc/mex
và WcfTestClient.exe
mang lại cho tôi cấu hình đúng từ địa chỉ đó.
Đây là vấn đề xảy ra.
Tôi có dịch vụ WCF hoạt động trong IIS và tôi muốn thêm một điểm cuối khác vào đó. Ví dụ: để nó là điểm cuối net.tcp
. IIS được cấu hình theo mặc định để chấp nhận các kết nối net.tcp
tại cổng 808 và tôi thêm net.tcp
giao thức để tính chất của ứng dụng web của tôi, và tôi muốn thêm một thiết bị đầu cuối để dịch vụ của tôi như thế:
<endpoint address=""
binding="netTcpBinding"
contract="wcf_service_auth.IPshService" />
và bây giờ tôi giả sử rằng dịch vụ của tôi có thể truy cập được qua url net.tcp://localhost:808/psh_pub/pshservice.svc
. Nhưng không phải vậy. Và mọi "cách thực hiện" và hướng dẫn sử dụng trên web đều cho biết tôi nên chỉ định địa chỉ đầy đủ trong tệp cấu hình như sau:
<endpoint address="net.tcp://localhost:808/psh_pub/pshservice.svc"
binding="netTcpBinding"
contract="wcf_service_auth.IPshService" />
Và nếu tôi làm như vậy, nó hoạt động. Nhưng nếu lưu trữ dịch vụ trong một thư mục ảo khác, tôi sẽ cần phải thay đổi cấu hình. Nếu tôi lưu trữ nó trên máy chủ khác, tôi sẽ cần phải thay đổi cấu hình. Nếu tôi lưu trữ nó trên nhiều máy chủ, tôi sẽ phải duy trì nhiều cấu hình như các máy chủ mà tôi có.
Vì vậy, câu hỏi chính là:
Có cách nào trong WCF để chỉ định một (hoặc https) endpoint net.tcp
của một dịch vụ WCF IIS lưu trữ mà không ghi rõ url tuyệt đối cho nó?
tôi không biết những gì tôi vừa làm, nhưng tôi đã có một điểm cuối net.tcp làm việc với tham số "địa chỉ" trống. dù sao nhờ giúp đỡ. – pushist1y