2017-03-28 6 views
10

मेरे पास एक एएसपी.नेट वेब एपीआई समाधान है जिसमें स्टार्टअप सीएस क्लास नहीं है। मुझे लगता है कि समाधान के कारण एमसीवी समाधान के रूप में नहीं बनाया गया था।एएसपी.नेट वेब एपीआई - स्टार्टअप सीएस मौजूद नहीं है

स्टार्टअप के लिए सभी कोड Global.asax.cs फ़ाइल में परिभाषित किया गया है के रूप में आप नीचे

public class Global : HttpApplication 
{ 
    void Application_Start(object sender, EventArgs e) 
    { 
     // Code that runs on application startup 
     AreaRegistration.RegisterAllAreas(); 
     GlobalConfiguration.Configure(WebApiConfig.Register); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
    } 
} 

हालांकि देख सकते हैं, अब मैं और OAuth के लिए समर्थन करने वाले सभी दस्तावेज़ कि मैंने करना चाहते हैं पाया निम्नलिखित वर्ग

public partial class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 
     ConfigureAuth(app); 
    } 
} 

के साथ एक Startup.cs पर आधारित है यह सिर्फ मेरी समाधान में इस नई श्रेणी जोड़ने के लिए और समाधान में कार्य करते रहेंगे संभव है?

क्या यह Global.asax.cs कक्षा के साथ कोई विवाद होगा?

संपादित: बाद मैं Startup.cs वर्ग कहा, मैं तोड़ बिंदु मैं इस पर जोड़ा ...

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Microsoft.Owin; 
using Owin; 

[assembly: OwinStartup(typeof(MyGame.Startup))] 

namespace MyGame 
{ 
    public partial class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      ConfigureAuth(app); 
     } 
    } 
} 

किसी भी विचार क्या चल रहा हिट नहीं कर सकते हैं?

+2

सुनिश्चित करें कि आप जोड़ लिया है बनाने के '[विधानसभा: OwinStartup (टाइपऑफ (प्रमाणीकरण सर्वर। स्टार्टअप))] 'स्टार्टअप क्लास – Curiousdev

+1

के ऊपर यह मैंने इसे जोड़ा लेकिन जब भी मैं एप्लिकेशन चलाता हूं तो ब्रेकपॉइंट नहीं मारा जाता है। – user3587624

+0

@ user3587624 मुझे एक ही समस्या है - क्या आपने इसे हल किया? –

उत्तर

4

Startup.cs ओविन प्रमाणीकरण पैकेज का हिस्सा है। यदि पैकेज NuGet के माध्यम से नहीं जोड़ा गया है, तो मैं गारंटी नहीं दे सकता कि यह काम करेगा। हालांकि, इस जवाब के आधार पर, यह आपके पर्यावरण के आधार पर वैसे भी काम कर सकता है।

https://stackoverflow.com/a/24678109/6442626

लघु जवाब: क्या आप NuGet से Microsoft.Owin.Security.OAuth स्थापित किया है, कि अच्छा होना चाहिए। अन्यथा, आपको इसे स्थापित करने की आवश्यकता है।

अद्यतन: स्टार्टअप में कॉन्फ़िगरेशन विधि को कॉल करने के लिए एमवीसी प्राप्त करने के लिए, आपको NuGet से Microsoft.Owin.Host.SystemWeb पैकेज को भी स्थापित करने की आवश्यकता है। Web.config के साथ बदलने के लिए आपको कुछ खास नहीं है, आईआईएस स्वचालित रूप से ओविन होस्ट का पता लगाएगा और इसे आपके लिए लोड करेगा।

+0

दरअसल, मैंने Startup.cs और Startup.Auth.cs जोड़े और यह ConfigurAuth (एप) लाइन में बिल्कुल भी नहीं टूट रहा है। मैंने इकट्ठा किया ([असेंबली: ओविनस्टार्टअप (टाइपोफ (MyGames.Startup))]) नामस्थान के ऊपर ... कोई विचार? – user3587624

+0

क्या आपने NuGet से पैकेज इंस्टॉल किया था? –

+0

मैंने किया। मैंने इसे स्थापित किया है: लेकिन Jwt, सक्रिय निर्देशिका, आदि जैसे कई अन्य ... – user3587624

3

आप अपनी स्टार्टअप क्लास जोड़ सकते हैं, लेकिन आपको यह सुनिश्चित करना होगा कि ओविन इसे पहचान रहा है। There are several ways to do this, लेकिन यदि आप स्टार्टअप क्लास का उपयोग करना चाहते हैं तो आपको OwinStartup विशेषता का उपयोग करने की आवश्यकता है।

जैसे:

[assembly: OwinStartup(typeof(MyNamespace.MyStartupClass))] 
+0

पर संदर्भ जोड़ने के बाद समस्या चली गई, मैंने इसे आजमाया (संपादित पोस्ट देखें) लेकिन यह काम नहीं किया। – user3587624

+1

मुझे डीएलएल के साथ समस्याएं नहीं मिलीं। अस्थायी एएसपी.Net फ़ाइलों से सामग्री को हटाने का प्रयास करें (आमतौर पर "एपडाटा/लोकल/टेम्प/अस्थायी एएसपी.नेट फाइलों" में) और फिर प्रोजेक्ट के लिए बिन और ओबीजे फ़ोल्डर्स को रीकंपाइल करने के लिए मजबूर करने के लिए हटा दें। – SharpLizard

+0

इस मामले में समस्या Microsoft.Owin.Host.SystemWeb – user3587624

4

आप Owin संकुल स्थापित किया है, तो आप साधारण के साथ कक्षा शुरू बना सकते हैं:

enter image description here

+0

जोड़ने के बाद चला गया यह वीएस 2015 के लिए सही उत्तर है - यह आपके लिए सभी आवश्यक कोड उत्पन्न करेगा। –

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