2009-12-08 4214 views
8

Tôi có một ứng dụng mẫu bạc ánh sáng rất đơn giản. Tôi đã thêm một dịch vụ miền vào nó với một mô hình thực thể có một thực thể. Ứng dụng khách chỉ cần tải tất cả các hàng trong thực thể lúc khởi động. Khi tôi chạy nó trên hộp phát triển của tôi, nó hoạt động như mong đợi. Tuy nhiên, khi tôi di chuyển nó đến máy chủ thử nghiệm của chúng tôi tôi nhận được một ngoại lệ nói rằng phương pháp tôi đang gọi không thể được tìm thấy (tải hoạt động không thành công cho truy vấn 'GetCTCStation'. Máy chủ từ xa trả về một lỗi. NotFound.). Khi tôi kiểm tra thông tin liên lạc của máy khách/máy chủ chặt chẽ hơn với Fiddler, tôi đã phát hiện ra rằng yêu cầu sẽ là http://[server url] /ClientBin/SilverlightApplication7-Client-Web-CTCService.svc/binary. Tôi đã thêm dịch vụ miền vào thư mục gốc của dự án web, vì vậy tôi không hiểu tại sao khách hàng lại tìm kiếm nó trong thư mục ClientBin. Rõ ràng là không có ở đó. Tôi làm gì sai ở đây? Tôi chưa bao giờ có bất kỳ vấn đề nào với phiên bản xem trước tháng 7 của RIA.Vấn đề triển khai dịch vụ WCF RIA


Nó tương đối, nhưng được xử lý trong tệp Generated_Code tự động. Và không có gì trong cấu hình web. Tôi đã sử dụng cài đặt mặc định khi tạo dịch vụ miền. Tôi đã cố gắng thiết lập một cách rõ ràng uri khi instantiating dịch vụ và ngoại lệ tương tự xảy ra.

Trả lời

9

Sau một cuộc đấu tranh lâu dài và thử nhiều tùy chọn khác nhau, cuối cùng tôi đã tìm ra giải pháp. Bài đăng này là key:

Về cơ bản, một số dll không bị bỏ trong thư mục bin khi xuất bản dự án. Hãy chắc chắn rằng dưới tham khảo rằng dll sau đây được thiết lập một cách chính xác (Hãy chắc chắn rằng System.ComponentModel.DataAnnotations trỏ đến C: \ Program Files \ Microsoft SDK \ RIA Services \ v1.0 \ Thư viện \ Server \ System.ComponentModel.DataAnnotations. dll):

System.ComponentModel.DataAnnotations và mọi dll bắt đầu bằng System.Web cần phải có "Copy Local" được đặt thành true.

Tạo dự án và xuất bản lại. Điều này đã khắc phục vấn đề cho tôi.

Tôi muốn cảm ơn tất cả mọi người đã đóng góp cho giải pháp của vấn đề này (trong chủ đề này và các vấn đề khác).

+0

Tệp System.ComponentModel.DataAnnotations.dll không còn tồn tại trong SDK này nữa. Chúng ta có nên bỏ phiếu cho câu trả lời này không? – YeahStu

+1

Tôi đang sử dụng Silverlight 5 và Ria Services 1.0 SP2 và câu trả lời này vẫn hợp lệ. Trong thực tế, xin vui lòng @ Dragan hoặc bất cứ ai có thể, đánh dấu này như là một câu trả lời. –

0

Bạn đã kiểm tra phần địa chỉ của cấu hình ràng buộc chưa? Có vẻ như nó đang sử dụng địa chỉ tương đối.

1

Nếu bạn kiểm tra lỗi trên yêu cầu dịch vụ đó (cách bình thường như cách bạn đang nhìn thấy nó), nội dung trong Fiddler nói gì? NotFound là generit trong các plugin, nhưng fiddler có khả năng hiển thị cho bạn một HTTP 500 hoặc một cái gì đó với một số chi tiết hơn trong cơ thể phản ứng.

+0

Trong trường hợp của tôi, tôi gặp lỗi 401. Đã thử các tùy chọn sao chép địa phương trên tất cả các tập tin cần thiết nhưng vẫn không có may mắn ... bất kỳ lời khuyên? – Entrodus

1

1) Bạn đang khai thác IIS nào? Nếu < 7 Bạn cần Hotfix

2) Bao gồm tất cả các assembly của bạn RIA (Set Copy địa phương => True) Bao gồm:

System.Web.Ria

System.Web.DomainServices. (có 4 trong số chúng tùy thuộc vào những gì bạn đang sử dụng)

3) Đây có thể là kết quả của nút trong ứng dụng ASPNET của bạn được đặt thành Windows, nhưng trang web của bạn được đặt thành Ẩn danh trong IIS. Đối với hầu hết, chỉ cần thay đổi nút thành chế độ = "Biểu mẫu" sẽ xóa lỗi này và cho phép bạn tiếp tục.Đối với những người khác, nếu cấu hình IIS của bạn được đặt để sử dụng cả Xác thực tích hợp cũng như Ẩn danh, bạn sẽ muốn bỏ chọn một trong số chúng trong cài đặt Bảo mật thư mục cho trang web trong bảng điều khiển quản lý IIS.

0

WCF RIA Services VS 2008 lỗi triển khai

Có rất nhiều thông tin đăng thoải mái trên mạng và một trong những tốt nhất có vẻ là here (Cảm ơn Tim)

Mặc dù tất cả các thông tin đăng tôi thấy là hữu ích trong một cách nào đó , giải pháp cuối cùng trong trường hợp của tôi là chuỗi kết nối DB không phù hợp. Mặc dù VS tạo DB chuỗi hoạt động tốt trong VS, tôi không thể triển khai nó đến máy chủ QA của tôi cho đến khi tôi cắt nó được như thế này:

add name="myEntities" connectionString="metadata=res://*/ReviewsModel.csdl|res://*/ReviewsModel.ssdl|res://*/ReviewsModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=dataSource;Initial Catalog=intitalCatalog;User ID=userID;Password=password;&quot;" providerName="System.Data.EntityClient" 
0

WCF RIA Services VS triển khai 2.008 lỗi Here sự là giải pháp bạn đang tìm kiếm ví dụ tải xuống và kiểm tra dịch vụ WCF RIA (Vs2008) của bạn.

1

Trong giải pháp trường hợp của tôi là để thiết lập "Sao chép địa phương" tài sản của cụm từ Tài liệu tham khảo WebSite của sau thư mục để "True":

System.ComponentModel.DataAnnotations 
System.ServiceModel.DomainServices.EntityFramework 
System.ServiceModel.DomainServices.Hosting 
System.ServiceModel.DomainServices.Hosting.OData 
System.ServiceModel.DomainServices.Server 
System.Web.ApplicationServices 
System.Web 
System.Web.Extensions 
System.Web.Mobile 
System.Web.Services 

Nếu tất cả là chính xác sau khi tới xây dựng lại các hội đồng sẽ được sao chép vào thư mục bin của dự án của bạn.

Cấu hình tiện dụng nào của IIS 7 tôi không thực hiện được.

1

Cũng gặp vấn đề này (RIA trả về "Không tìm thấy"), nhưng trong trường hợp của tôi, kết quả là truy vấn của tôi trả về nhiều hàng hơn mức cho phép thông qua maxitemsinobjectgraph. Độ phân giải tạm thời của tôi là thêm .Take (5000) để giảm tập kết quả, nhưng độ phân giải cố định yêu cầu mở rộng maxitemsinobjectgraph như được tham chiếu bên dưới. Hy vọng điều này sẽ giúp người khác ra ...

<behaviors>  
<behavior name="MyServiceBehavior">   
    <dataContractSerializer maxItemsInObjectGraph="3" />  
</behavior> 
</behaviors> 

Hãy nhớ rằng giá trị mặc định là Int32.MaxValue hoặc 2.147.483.647

MSDN - maxItemsInObjectGraph

MSDN - Int32.MaxValue

0

Đối với tôi, đó là rằng xác thực không được đặt thành "Ẩn danh" trong IIS. Tôi đã sử dụng Fiddler để nhận URL RIA SCV được tạo và sau đó mở URL trong trình duyệt. Thông điệp khá rõ ràng.

Tôi chỉ phải cho phép truy cập ẩn danh, khởi động lại nhóm ứng dụng và mọi thứ đã hoạt động như mong đợi.

1

Microsoft khuyến nghị trên MSDN rằng Ria Services được cài đặt trên máy chủ.

Chúng tôi khuyên bạn nên cài đặt Dịch vụ RIA trên máy chủ Web để lưu trữ ứng dụng của bạn.

Có một thủ thuật ở đây có thể sẽ thấy hầu hết mọi người né tránh giải pháp này. Cài đặt sẽ liệt kê một số điều kiện tiên quyết theo mặc định mà bạn thường không muốn cài đặt trên máy chủ.

Điều kiện tiên quyết Kiểm tra

Các thành phần bắt buộc sau đây đang thiếu:

  • Microsoft Visual Studio 2010 hoặc mới hơn hoặc Visual Web Developer 2010
  • nhanh Microsoft Silverlight 4 Developer Runtime hoặc mới hơn Microsoft
  • SDK Silverlight 4 hoặc SDK Silverlight 5 của Microsoft

Chạy đối số installation với đối số dòng lệnh SERVER=TRUE sẽ bỏ qua kiểm tra này.

msiexec/i RiaServices.msi SERVER = TRUE

Tôi cũng sẽ khuyên bạn nên sử dụng giải pháp này vì nó không đòi hỏi cấu hình đặc biệt cho một tập hợp cụ thể của dlls có thể thay đổi trong tương lai phiên bản. Ngoài ra, quá trình xuất bản sẽ nhanh hơn một chút vì các tệp này sẽ không được bao gồm.

Cũng lưu ý rằng bạn có thể sử dụng Web Platform Installer để cài đặt dịch vụ Rịa trên một máy chủ bằng cách sử dụng 'WCF RIA Services Server cài đặt cho .Net Framework 4.0' trong đó có tác dụng tương tự như SERVER=TRUE switch. Thật không may, mặc dù đây là phiên bản 1 chỉ và thiếu gói dịch vụ 2.

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