2012-07-10 35 views
7

Tôi mới dùng WCF và IIS nhưng đã thực hiện một số đọc về cách lưu trữ một ứng dụng WCF trong IIS. Chúng tôi có một hệ thống mà chúng tôi đang cố gắng triển khai cho IIS cần các điểm cuối HTTP và NET.TCP. Tôi có tất cả mọi thứ được cấu hình như tôi thấy trong hướng dẫn ngẫu nhiên nhưng tôi vẫn không thể kết nối từ khách hàng của tôi. Bất kỳ trợ giúp nào với cấu hình sẽ được đánh giá cao!NET TCP/HTTP WCF được lưu trữ trong IIS

tập tin của tôi EdWCF.svc trong thư mục WCF của tôi:

< %@ ServiceHost Language="C#" Debug="true" Service="TwoFour.WCF.Engine.EdWCF" % > 

Web.Config của tôi:

<?xml version="1.0"?> 
<configuration> 
<system.serviceModel> 

    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyBehaviour"> 
      <serviceMetadata HttpGetEnabled="True" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

<service name="TwoFour.WCF.Engine.EdWCF" behaviorConfiguration="MyBehaviour"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://localhost:12345/WCF/EdWCF.svc"/> 
      </baseAddresses> 
     </host> 
     <endpoint address="" 
       binding="netTcpBinding" 
       bindingConfiguration="InsecureTcp" 
       contract="TwoFour.WCF.Interface.Shared.IEdWCF" /> 
     <endpoint address="mexhttp" binding="mexHttpBinding" contract="IMetadataExchange"/> 
</service> 

    <bindings> 
      <netTcpBinding> 
       <binding name="InsecureTcp" portSharingEnabled="true"> 
        <security mode="None" /> 
       </binding> 
      </netTcpBinding> 
     </bindings> 

</system.serviceModel> 

</configuration> 

Nhờ sự giúp đỡ hoặc gợi ý!

Trả lời

13
  1. Trong IIS thêm net.tcp ràng buộc vào danh sách các giao thức được kích hoạt (trang web Mange -> Tạm ứng Settings -> Enabled Protocols)

  2. Trong trang web ràng buộc thêm net.tcp ràng buộc (Sửa Binding -> Add -> Chọn loại như net.tcp và thêm cổng như 12345 này: *)

bạn cũng cần phải xác định địa chỉ cơ sở trong cấu hình của bạn:

<system.serviceModel> 
<services> 
    <host> 
     <baseAddresses> 
     <add baseAddress="net.tcp://server:12345/ServiceAddress.svc"/> 
     </baseAddresses> 
    </host> 
    ... 
</service> 
    ... 
</system.serviceModel> 

Edit:

Hãy thử điều này

<system.serviceModel> 

    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyBehaviour"> 
      <serviceMetadata /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

<service name="TwoFour.WCF.Engine.EdWCF" behaviorConfiguration="MyBehaviour"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://localhost:12345/WCF/EdWCF.svc"/> 
      </baseAddresses> 
     </host> 
     <endpoint address="" 
       binding="netTcpBinding" 
       bindingConfiguration="InsecureTcp" 
       contract="TwoFour.WCF.Interface.Shared.IEdWCF" /> 
     <endpoint address="mextcp" binding="mexTcpBinding" contract="IMetadataExchange"/> 
</service> 

    <bindings> 
      <netTcpBinding> 
       <binding name="InsecureTcp" portSharingEnabled="true"> 
        <security mode="None" /> 
       </binding> 
      </netTcpBinding> 
     </bindings> 

</system.serviceModel> 
+0

Cảm ơn bạn đã trả lời nhanh chóng. Tôi đã có các ràng buộc kích hoạt, và tôi chỉ cần thêm địa chỉ cơ sở máy chủ lưu trữ vào tập tin cấu hình của tôi nơi baseAddress = "net.tcp: // localhost: 12345/EdWCF.svc" - vẫn không thể kết nối. –

+0

Bạn cần thêm địa chỉ đầy đủ. Nếu EdWCF.svc nằm trong thư mục Engine, hãy đổi nó thành net.tcp: // localhost: 12345/Engine/EdWCF.svc –

+0

Tôi có Đường dẫn vật lý của Ứng dụng IIS được đặt thành C: \ User \ WCF \ WCF ở nơi EdWCF Tệp .svc nằm. Tôi đã điều chỉnh địa chỉ cơ sở để có net.tcp: // localhost: 12345/WCF/EdWCF.svc nhưng khi tôi cố gắng kết nối từ máy khách của mình, tôi vẫn nhận được: Không thể kết nối với net.tcp: // localhost: 12345/WCF /EdWCF.svc. Nỗ lực kết nối kéo dài trong khoảng thời gian 00: 00: 02.0052005. Mã lỗi TCP 10061: Không thể kết nối vì máy đích đã chủ động từ chối nó 127.0.0.1:12345. –

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