Tôi đã chuyển dịch vụ truyền tệp của mình từ basicHttpBinding sang netTcpBinding vì tôi đang cố gắng thiết lập kênh chế độ song công. Tôi cũng đã bắt đầu dịch vụ chia sẻ cổng net.tcp của mình.Không thể tìm thấy địa chỉ cơ sở khớp với sơ đồ net.tcp
Tôi hiện đang ở chế độ tự phát và tự lưu trữ trên hộp xp cho đến khi chúng tôi di chuyển ứng dụng sang máy chủ dev. vì vậy, bây giờ, tôi không có quyền truy cập vào IIS.
Sau khi cấu hình dịch vụ của tôi như vậy:
<service behaviorConfiguration="transferServiceBehavior" name="API.FileTransfer.FileTransferService">
<endpoint name="MyFileTransferEP"
address = ""
binding = "netTcpBinding"
bindingConfiguration="MyFileTransferNetTcpEP"
behaviorConfiguration="NetTcpEPBehavior"
contract="API.FileTransfer.IFileTransferService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8001/project/filetransfer.svc" />
</baseAddresses>
</host>
</service>
Và, tôi ràng buộc như vậy:
<netTcpBinding>
<binding name="MyFileTransferNetTcpEP"
hostNameComparisonMode="StrongWildcard"
closeTimeout="00:01:00"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
maxReceivedMessageSize="2147483647"
transferMode="Streamed"
portSharingEnabled="true">
<security mode="None">
<transport clientCredentialType="None" />
<message clientCredentialType="None" />
</security>
</binding>
</netTcpBinding>
tôi nhận được lỗi folloing khi tôi phải và duyệt đến tập tin SVC:
Không thể tìm thấy địa chỉ cơ sở sơ đồ khớp nối net.tcp cho số điểm cuối wi thứ ràng buộc NetTcpBinding. Đề án địa chỉ cơ sở đã đăng ký là [http].
Việc đọc trực tuyến cho thấy rằng, để khắc phục vấn đề này, tôi cần thiết để thêm net.tcp liên kết với các ràng buộc của ứng dụng trong IIS. Nhưng, tôi phải làm gì nếu tôi tự lưu trữ và không có quyền truy cập vào IIS ?? Bằng cách này, nếu bạn đang đọc này và "làm" có IIS, hãy làm như sau: Nhấp chuột phải vào thư mục ảo/ứng dụng trong IIS -> Quản lý ứng dụng -> Cài đặt nâng cao. Và, trong phần Protocols Protocols, thêm net.tcp.
Bất kỳ ý tưởng nào?
CẬP NHẬT: Tôi nghĩ mình đã làm việc nhưng vẫn không hoạt động. Dưới đây là những gì tôi có bây giờ: Tôi vẫn nhận được thông báo "không thể tìm thấy địa chỉ cơ sở khớp với sơ đồ net.tcp". Tôi đã thay đổi tất cả các địa chỉ cơ sở của tôi để phản ánh đề xuất của bạn. Dưới đây là những gì tôi có bây giờ:
<service behaviorConfiguration="transferServiceBehavior" name="API.FileTransfer.FileTransferService">
<endpoint name="MyJSONFileTransferEP"
address="json"
binding="webHttpBinding"
bindingConfiguration="jsonWeb"
behaviorConfiguration="WebHttpEPBehavior"
contract="API.FileTransfer.IJSONFileTransferService" />
<endpoint name="MyPOXFileTransferEP"
address="pox"
behaviorConfiguration="WebHttpEPBehavior"
binding="webHttpBinding"
bindingConfiguration="poxWeb"
contract="API.FileTransfer.IPOXFileTransferService" />
<endpoint name="MySOAPFileTransferEP"
address="filetransfer"
binding="netTcpBinding"
bindingConfiguration="netTcpWeb"
behaviorConfiguration="NetTcpEPBehavior"
contract="API.FileTransfer.ISOAPFileTransferService" />
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:2544/filetransfer/" />
</baseAddresses>
</host>
</service>
Tôi đã thử điều này với cả hai "net.tcp: // localhost: 2544" & "net.tcp: // localhost: 8001". Tôi có cần thêm (cho phép) điều gì đó trong cài đặt tường lửa của mình không? Bất cứ một đề nghị nào khác?
Đây là mexTcpBinding filetransferservice tôi trong file App.config của tôi:
<endpoint address="net.tcp://localhost:2544/filetransfer/mex"
binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange"
name="filetransfermex">
<identity>
<certificateReference storeName="My" storeLocation="LocalMachine"
x509FindType="FindBySubjectDistinguishedName" />
</identity>
</endpoint>
Tôi vẫn không thể tham khảo FileTransferServiceClient của tôi trong ứng dụng web của tôi.
Xin cảm ơn một lần nữa.
, với baseAddress = "net.tcp: // localhost: 2544/filetransfer /" và address = "filetransfer" trên điểm cuối của bạn, URL hoàn chỉnh của bạn sẽ là " net.tcp: // localhost: 2544/filetransfer/filetransfer "- bạn đã thử kết nối ở đó chưa ?? –
Cảm ơn - giám sát ngớ ngẩn. Tôi thường có "xà phòng" ở đó và thay đổi nó trở lại. Tôi đã dành thời gian qua đi qua các tệp App.config và Web.config của mình bằng một chiếc lược có răng và cuối cùng cũng có được nó để biên dịch. Khi tôi "thêm dịch vụ tham khảo", tôi có thể tham khảo ../trade/mex và .../auth/mex nhưng net.tcp của tôi .../filetransfer/mex không bao giờ xuất hiện như một tùy chọn. Vì vậy, tất cả mọi thứ biên dịch độc đáo ngoại trừ tôi không thể truy cập FileTransferServiceClient từ ứng dụng web của tôi. Bất kỳ ý tưởng tại sao .../filetransfer/mex không hiển thị? Tôi đang sử dụng mexTcpBinding và đã đăng những gì nó trông giống như trong câu hỏi của tôi. Cảm ơn một lần nữa. –
đọc @marc_s. Cảm ơn một lần nữa. –