2012-07-10 42 views
5

Tôi đang làm việc trên một ứng dụng kiểu Metro giao tiếp với máy chủ của chúng tôi thông qua dịch vụ web. Ban đầu, tôi phát hiện ra rằng tôi cần thêm các mạng "Home hoặc Work Networking" (privateNetworkClientServer) và "Internet Client" (internetClient) vào tệp kê khai, nếu không ứng dụng sẽ nhấn ngoại lệ khi cố gắng thực hiện cuộc gọi dịch vụ web đến điều khiển từ xa máy chủ.Ngoại lệ ổ cắm trong ứng dụng kiểu Metro khi chia sẻ được bật cho mạng

Bây giờ, tuy nhiên, trên một số máy tôi nhận được ngoại trừ ổ cắm sau khi ứng dụng cố gắng để gọi dịch vụ web của chúng tôi:

System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at https://[my_service_url] that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. ---> System.Net.WebException: Unable to connect to the remote server 
---> 
System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions [my_server_ip_address]:443 
    at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) 
    at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) 
    --- End of inner exception stack trace --- 
    at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context) 
    at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStreamAsyncResult.CompleteGetRequestStream(IAsyncResult result) 
    --- End of inner exception stack trace --- 
    at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result) 
    at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result) 
    at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result) 
    at System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator.<>c__DisplayClass5`1.<CreateGenericTask>b__4(IAsyncResult asyncResult) 
    at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 

Điều thú vị là đủ, nếu tôi vô hiệu hóa việc chia sẻ (click chuột phải vào kết nối wifi , chọn "Bật hoặc tắt chia sẻ" và chọn "Không, không bật chia sẻ hoặc kết nối với thiết bị"), sự cố sẽ biến mất và các cuộc gọi dịch vụ web thành công. Nếu sau đó quay trở lại và bật lại chia sẻ (chọn "có" thay vì "không"), vấn đề sẽ trả về.

Vì vậy, có vẻ như sự cố liên quan đến việc mạng đã bật chia sẻ và thiết bị chưa. Tôi không hoàn toàn chắc chắn về việc lập bản đồ, nhưng tôi nghĩ điều này về cơ bản sẽ làm giảm sự khác biệt giữa các mạng "nhà/công việc" và "công khai"; trong trường hợp của tôi, các cuộc gọi dịch vụ web không thành công khi mạng là "nhà riêng/cơ quan" và thành công khi mạng "công khai" - nhưng ứng dụng của tôi có cả hai loại khả năng kết nối được khai báo và sự cố này không xảy ra trên tất cả các hộp. Cũng không có tường lửa hoặc hạn chế mạng khác; đó là một bản cài đặt Win8 hoàn toàn không có thêm tinh chỉnh.

Cuối cùng, điều này không bị cô lập với các dịch vụ web - cùng một ứng dụng có iframe không thành công hoặc thành công dưới một số điều kiện chính xác như dịch vụ web.

+0

Hãy thử cho phép Schannel khai thác gỗ và xem nếu bất cứ điều gì nổi bật http: // hỗ trợ .microsoft.com/kb/260729 –

Trả lời

6

Tôi đã gặp vấn đề tương tự. Tôi đã giải quyết vấn đề bằng cách thiết lập các khả năng thích hợp trong tệp Package.appxmanifest. Ở đó bạn phải kiểm tra Internet (Client) và Private Networks (Client & Server).

Điều này phù hợp với tôi trên VS 2012 và Windows RT.

+0

Khi tôi gặp sự cố này, tôi đã bật cả tính năng Internet và Mạng Riêng. Nó cũng không phải là một vấn đề nhất quán. Cuối cùng tôi tin rằng đó là một vấn đề với một trong các bản dựng trước khi phát hành vì chúng tôi chưa thấy nó kể từ khi phát hành Bản xem trước. – atkretsch

2

Kiểm tra xem mạng riêng được cấu hình như một khả năng ... Nếu kết nối mạng được cấu hình như một trong hai làm việc/Nhà nó sẽ đòi hỏi khả năng này

+0

Điều này đã lưu mông của tôi. Nếu chỉ thiết lập hộp kiểm Internet tự động kiểm tra hộp mạng cục bộ. –

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