मैं मेट्रो-स्टाइल ऐप पर काम कर रहा हूं जो वेब सर्वर के माध्यम से हमारे सर्वर से संचार करता है। प्रारंभ में, मुझे पता चला कि मुझे मेनिफेस्ट में "होम या वर्क नेटवर्किंग" (प्राइवेटनेटवर्क क्लाइंट सर्वर) और "इंटरनेट क्लाइंट" (इंटरनेट क्लाइंट) क्षमताओं को जोड़ने की ज़रूरत है, अन्यथा रिमोट पर वेब सेवा कॉल करने का प्रयास करते समय ऐप अपवादों को मार देगा मेज़बान।मेट्रो-स्टाइल ऐप में सॉकेट अपवाद नेटवर्क के लिए साझा किया जाता है
हालांकि अब कुछ मशीनों पर मैं निम्नलिखित सॉकेट अपवाद है जब एप्लिकेशन हमारे वेब सेवा को कॉल करने की कोशिश करता हो रही है: (वाईफ़ाई कनेक्शन पर राइट-क्लिक
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()
दिलचस्प बात यह है कि अगर मैं शेयर करना अक्षम करें , "साझा करना चालू या बंद करें" का चयन करें, और "नहीं, साझाकरण या डिवाइस से कनेक्ट न करें" चुनें, समस्या दूर हो जाती है और वेब सेवा कॉल सफल होती हैं। यदि फिर वापस जाएं और वापस साझा करना चालू करें ("नहीं" के बजाय "हां" चुनें), समस्या वापस आती है।
तो ऐसा लगता है कि समस्या इस बात से संबंधित है कि नेटवर्क साझा करने और डिवाइस सक्षम है या नहीं। मैं मैपिंग के बारे में पूरी तरह से यकीन नहीं कर रहा हूं, लेकिन मुझे लगता है कि यह मूल रूप से "घर/काम" और "सार्वजनिक" नेटवर्क के बीच भेद को उबालता है; मेरे मामले में वेब सेवा कॉल विफल होती है जब नेटवर्क "घर/काम" होता है और नेटवर्क "सार्वजनिक" होने पर सफल होता है - लेकिन मेरे ऐप में दोनों प्रकार की नेटवर्किंग क्षमताओं की घोषणा की गई है, और यह समस्या सभी बक्से पर नहीं होती है। जगह पर कोई फ़ायरवॉल या अन्य नेटवर्किंग प्रतिबंध भी नहीं है; यह कोई अतिरिक्त ट्विकिंग के साथ एक नंगे हड्डियों Win8 स्थापित है।
अंत में, यह वेब सेवाओं के लिए अलग नहीं है - उसी ऐप में iframes हैं जो वेब सेवाओं के रूप में कुछ स्थितियों में विफल या सफल होते हैं।
Schannel लॉगिंग को सक्षम करने का प्रयास करें और देखें कि क्या कुछ भी http बाहर खड़ा है: // समर्थन .microsoft.com/kb/260729 –