2015-07-20 9 views
6

मैं WinForms एप्लिकेशन में एक ओविन पाइपलाइन होस्ट करने की कोशिश कर रहा हूं। पाइपलाइन स्थिर फाइलों और वेब एपीआई v2 सामग्री दोनों की मेजबानी कर रही है। कार्यान्वयन स्थानीय स्तर पर बहुत अच्छा काम कर रहा है, लेकिन मुझे यकीन नहीं है कि मैं अपने नेटवर्क पर दूरस्थ मशीनों से होस्ट की गई फ़ाइलों और एपीआई तक पहुंचने में सक्षम होने के लिए क्या खो रहा हूं।नेटवर्क पर अन्य कंप्यूटरों के लिए स्वयं होस्टिंग OWIN

सादगी के लिए, मैंने कोडप्लेक्स here से नमूना स्वयं-होस्ट ऐप डाउनलोड किया और आधार पते पर नीचे दिए गए संशोधनों को हटाने के बाद दूरस्थ रूप से परीक्षण विधियों तक पहुंचने का प्रयास किया (मैंने नेटस् रेजीकरण चलाने की कोशिश की और मैं व्यवस्थापक में चल रहा हूं मोड) और मैं अभी भी उन तक नहीं पहुंच सकता। उसी नेटवर्क पर अन्य कंप्यूटरों से सामग्री को देखने में सक्षम होने के लिए मुझे कॉन्फ़िगरेशन में बदलने की क्या ज़रूरत है?

static void Main() 
{ 
    string baseAddress = "http://*:10281/"; 
    // Start OWIN host 
    using (WebApp.Start<Startup>(url: baseAddress)) 
    { 
     // Create HttpCient and make a request to api/values 
     HttpClient client = new HttpClient(); 

     HttpResponseMessage response = client.GetAsync("http://localhost:10281/api/values").Result; 

     Console.WriteLine(response); 
     Console.WriteLine(response.Content.ReadAsStringAsync().Result); 
     Console.ReadLine(); // Keeps the host from disposing immediately 
    } 
} 

यहाँ स्टार्टअप विन्यास, सुंदर बुनियादी सामान है:

public class Startup 
{ 
    // This code configures Web API contained in the class Startup, which is additionally specified as the type parameter in WebApplication.Start 
    public void Configuration(IAppBuilder appBuilder) 
    { 
     // Configure Web API for Self-Host 
     HttpConfiguration config = new HttpConfiguration(); 
     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

     appBuilder.UseWebApi(config); 
    } 
} 
+0

'client.GetAsync (" http: // localhost: 10281/api/values ​​") शायद आपकी मशीन के आईपी पते पर" लोकलहोस्ट "को बदलना चाहते हैं ताकि अंत बिंदु को दूरस्थ रूप से देखा जा सके ... या इसका उपयोग करें आधार पता प्रारूप, हालांकि मुझे लगता है कि अगर आपको सही याद है तो आपको "*" के बजाय "+" का उपयोग करना चाहिए। –

+0

यह सिर्फ परीक्षण कोड है, मैं स्थानीय ब्राउज़र और दूरस्थ मशीनों पर परीक्षण करते समय अपने आईपी पते का उपयोग करता हूं। –

उत्तर

6

कि कोड ठीक लग रहा है और कोई कारण नहीं है कि यह काम नहीं करना चाहिए, खासकर यदि आप Owin सर्वर स्थानीय स्तर पर पहुंच सकते हैं।

नेटवर्क पहुंच को रोकने में दो संभावित समस्याएं हैं। या तो आपको पोर्ट 10281 के लिए विंडोज फ़ायरवॉल में एक इनबाउंड नियम जोड़ने की आवश्यकता है (या होस्टिंग कंप्यूटर पर अस्थायी रूप से किसी भी फ़ायरवॉल को अक्षम करें), या आपका नेटवर्क किसी भी तरह से यातायात को अवरुद्ध कर रहा है।

+0

विंडोज फ़ायरवॉल मुझे मिला। पता होना चाहिए था, फ़ायरवॉल एक्सेस की आवश्यकता वाले नए एप्लिकेशन को फायर करने से पहले मुझे हमेशा संकेत दिया गया था। सुनिश्चित नहीं है कि ओविन एप्लिकेशन के बारे में क्या अलग है, लेकिन विंडोज़ ने मुझसे कभी नहीं पूछा। मैंने इनबाउंड नियम और वॉयला जोड़ा! –

संबंधित मुद्दे