2009-01-23 33 views
5

UPDATE 3:
Tôi tạo ra một dự án Visual kiểm tra Studio 2008 và đã cố gắng để tạo ra một tài liệu tham khảo phục vụ cho trang web chia sẻ tài liệu tham khảo dịch vụ WCF và nhận được lỗi sau:Load balancing lỗi với dịch vụ WCF - NLB

There was an error downloading ' http://apps.mydomain/MyService.svc '. The request failed with HTTP status 400: Bad Request. Metadata contains a reference that cannot be resolved: ' http://apps.mydomain/MyService.svc '. Content Type application/soap+xml; charset=utf-8 was not supported by service http://apps.mydomain/MyService.svc '. The client and service bindings may be mismatched. The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'.. If the service is defined in the current solution, try building the solution and adding the service reference again.

CẬP NHẬT 2:
@Nick - Tôi đã thử đề xuất thiết lập địa chỉ của từng điểm cuối với đường dẫn đầy đủ của mỗi máy chủ và tôi vẫn nhận được kết quả tương tự.

Ngoài ra, khi tôi cố gắng đặt thuộc tính listenUri với URL trang web được chia sẻ, tôi nhận được lỗi yêu cầu 400 lỗi thay vì lỗi 404.

CẬP NHẬT
Sau khi một số nghiên cứu bổ sung, đã có một số thiết lập xung đột giữa http://apps1.mydomainhttp://apps2.mydomain cấu hình IIS và đã có thể vượt qua các lỗi "Application Server Unavailable".

Bây giờ tôi gặp lỗi 404 khi cố gắng duyệt đến trang web được chia sẻ (http://apps.mydomain), nhưng tôi có thể duyệt đến tài liệu tham khảo dịch vụ http://apps1.mydomainhttp://apps2.mydomain.

gốc Vấn đề

của công ty của tôi sử dụng Microsoft NLB để tải giao thông cân bằng giữa các máy chủ IIS của chúng tôi. Gần đây tôi đã triển khai một dịch vụ WCF trên mỗi máy chủ IIS 6 Windows Server 2003 Standard Edition SP1. Tôi nhận được lỗi sau khi tôi đã cố gắng để duyệt đến tên miền chia sẻ sử dụng IE 7:

Server Application Unavailable The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.

Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.

Người tiêu dùng sẽ trỏ đến http://apps.mydomain sử dụng dịch vụ nhưng miền ảo được ánh xạ tới http://apps1.mydomain hoặc http://apps2.mydomain. Nếu tôi duyệt đến dịch vụ trên mỗi máy chủ, tôi không nhận được lỗi đó.

Dịch vụ hiện đang sử dụng cơ sở ẩn danhHttpBinding.

Có ai khác đã gặp sự cố này không?

Lịch sử

Trước khi lỗi này bắt đầu xảy ra, tôi nhận được lỗi sau khi tôi broswed cho tất cả tên ba miền (http://apps.mydomain, http://apps1.mydomain, http://apps2.mydomain):

This collection already contains an address with scheme http. There can be at most one address per scheme in this collection.

tôi đã sử dụng ServiceHostFactory lớp để tùy chỉnh tệp .svc của tôi để chỉ định nhà máy dịch vụ tùy chỉnh. Sau đó, tôi tạo nhà máy tùy chỉnh của chúng tôi bằng cách kế thừa từ ServiceHostFactory và ghi đè theo yêu cầu.

public class MyFactory : ServiceHostFactory 
{ 
    protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses) 
    { 
     return new ServiceHost(serviceType, baseAddresses[0]); 
    } 
} 

<%@ ServiceHost Language="C#" Factory="MyFactory" Debug="true" Service="MyService" CodeBehind="~/App_Code/MyService.cs" %> 

Trả lời

2

Sau khi thử nghiệm với các cấu hình khác nhau cho dịch vụ WCF và ứng dụng tiêu thụ của mình. Tôi đã tạo một tham chiếu dịch vụ tới một trong các tài liệu tham khảo dịch vụ làm việc (http://apps1.mydomain hoặc http://apps2.mydomain) trong ứng dụng tiêu thụ. Sau đó, tôi đã thay đổi tham chiếu điểm cuối trong cấu hình máy khách để trỏ đến địa chỉ WCF trang web được chia sẻ (http://apps.mydomain) và tôi đã có thể sử dụng và sử dụng dịch vụ.

1

Tôi đã gặp vấn đề trước với WCF và cân bằng tải nơi máy chủ có nhiều thẻ Mạng với địa chỉ IP và WCF khác nhau sẽ chỉ là địa chỉ IP đầu tiên được tìm thấy. Chúng tôi đã phải đặt rõ ràng địa chỉ IP trên Định nghĩa dịch vụ của mỗi máy chủ để WCF sẽ liên kết với đúng.

+0

@Nick - Bạn có thể cung cấp ví dụ hoặc cung cấp tài nguyên không? –

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