2011-12-15 65 views
12

Tôi có dịch vụ WCF .Net 4.0 chạy trên IIS. Tôi đã không chỉ định một cổng vì vậy giả sử nó đang chạy trên cổng 80. Tôi cần cài đặt dịch vụ của mình trên máy chủ nơi cổng 80 đã được sử dụng và anh chàng mạng đã yêu cầu tôi thay đổi dịch vụ của mình để chạy trên cổng 443. Tôi làm việc này? Tôi đoán nó có thể được cấu hình trong app.config nhưng tôi không thể tìm thấy một bài báo cho tôi thấy làm thế nào.Cách chạy dịch vụ WCF trên một cổng cụ thể

Đây là App.config hiện tại của tôi:

<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name=""> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 

+1

Bạn có thể lập bản đồ anoter cổng trên IIS của bạn. Chỉ cần nhấp chuột phải vào trang web của bạn có dịch vụ WCF hoặc nếu dịch vụ WCF applciation là một trang web trong IIS của bạn sau đó chọn chỉnh sửa bindings, bây giờ bạn có thể thay đổi http để nghe trên một cổng khác nhau hơn 80. – Rajesh

Trả lời

5

Tôi giả sử bạn đang chạy dịch vụ của mình trên giao thức net.tcp.

1) Chỉnh sửa bindings của bạn (click chuột phải Default Web Site chọn Edit Bindings

enter image description here

2) Server Side

<service name="YouServiceNameSpace.YourService"> 
<endpoint address="" binding="netTcpBinding" bindingConfiguration="YourBinding" contract="YourContract" /> 
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange" /> 
</service> 

3) Client Side

<endpoint address="net.tcp://YourHost:443/YourServiceDirecotry/YourService.svc" 
    behaviorConfiguration="YourBehavior" binding="netTcpBinding" 
    bindingConfiguration="YourTcpBinding" contract="YourContract" 
    name="YourContractName" /> 
+0

Lưu ý rằng điểm 1 ở trên giả định bạn đã bắt đầu IISManager và điều hướng đến kết nối tương ứng với máy chủ mà trang web của bạn đang chạy. –

1

Thông thường bạn nên có một nút dịch vụ với ít nhất một nút dịch vụ và từng có điểm cuối, nơi bạn có thể chỉ định các cổng. Xem thêm tại: http://msdn.microsoft.com/en-us/library/ms733932.aspx

Ví dụ:

<services> 
    <service name="MyNamespace.myServiceType"> 
    <endpoint 
     address="net.tcp://0.0.0.0:8000" binding="basicHttpBinding" 
     bindingConfiguration="myBindingConfiguration1" 
     contract="MyContract" /> 
    </service> 
</services> 
+0

tôi đang sử dụng. Net 4.0 vì vậy nó là một cấu hình đơn giản. Xem tại đây http://msdn.microsoft.com/en-us/library/ee530014.aspx Điều này thêm vào vấn đề vì tôi không có một dịch vụ đã được cấu hình mà tôi có thể thay đổi. –

+0

@SteveChadbourne Bạn vẫn có thể chỉ định điểm cuối và địa chỉ, không? – MPelletier

+0

Nevermind, tôi hiểu rồi. Vâng, làm thế nào để bạn chỉ định cổng ... hmmm ... – MPelletier

0

Chỉ định cổng vào địa chỉ của thiết bị đầu cuối. Xem phần 'Xác định địa chỉ điểm cuối trong mã' trong bài viết this để biết thêm chi tiết.

+0

Điều đó sẽ chỉ hoạt động nếu bạn đang tự lưu trữ dịch vụ WCF của mình - nếu không, môi trường lưu trữ (IIS) sẽ quyết định địa chỉ điểm cuối của dịch vụ cho một mức độ ... –

5

Chúng ta có thể làm điều đó sử dụng tệp .csproj của dự án WCF (trong trường hợp o f sử dụng VS) .Just thay đổi giá trị của thẻ xml này trong tập tin tương ứng của bạn:

Để Chạy dịch vụ tại cảng số 60000,

<DevelopmentServerPort>60000</DevelopmentServerPort> 
Các vấn đề liên quan