ओविन स्टार्टअप क्लास मिसिंग


226

मुझे यह त्रुटि हो रही है क्योंकि मेरी परियोजना OWINस्टार्टअप वर्ग के लिए संदर्भ खोजने में सक्षम नहीं है । मैं भी Nuget के माध्यम से सभी OWIN संदर्भ संकुल अभी भी एक ही समस्या हो रही है स्थापित किया है। मैं उपयोग कर रहा हूँ Visual Studio 2012और MVC4

एप्लिकेशन लोड करने का प्रयास करते समय निम्नलिखित त्रुटियां हुईं।

  • कोई असेंबली नहीं मिली जिसमें OwinStartupAttribute शामिल हो।
  • कोई असेंबली जिसमें कोई स्टार्टअप या असेंबलीनाम नहीं है ।Startup वर्ग। OWIN स्टार्टअप खोज को अक्षम करने के लिए, appSetting owin जोड़ें: अपने web.config में "false" के मान के साथ AutomaticAppStartup। OWIN स्टार्टअप असेंबली, क्लास या मेथड को निर्दिष्ट करने के लिए, appSetting owin जोड़ें: AppStartup आपके वेब.config में पूरी तरह से योग्य स्टार्टअप क्लास या कॉन्फ़िगरेशन विधि के नाम के साथ।

7
क्या आपके पास Startup.csप्रोजेक्ट में है?
क्रिश्चियनदेव

4
क्या आपके विधानसभा में ए है OwinStartupAttribute? क्या आपकी विधानसभा Startupया एक [AssemblyName].Startupवर्ग? क्या आपने OWIN स्टार्टअप खोज को अक्षम कर दिया है, owin:AutomaticAppStartupअपने web.config में "झूठी" के मूल्य के साथ ऐपेटिंग को जोड़कर ? क्या आपने इनमें से एक काम किया है और सोच रहे हैं कि यह काम क्यों नहीं कर रहा है? क्या पूछते हैं?
ta.speot.is

1
कि बात है। जब मैं अपने प्रोजेक्ट में नया आइटम जोड़ने की कोशिश कर रहा हूँ तो ओविन स्टार्टअप क्लास नहीं दिखा रहा है। मैंने गूगल पर सर्च किया कि इसमें नगेट्स के माध्यम से OWIN सन्दर्भ जोड़े गए हैं और मैंने भी ऐसा ही किया है। अभी भी जोड़ने के लिए कक्षा नहीं मिल रही है।
क्रुणाल पाटिल

जवाबों:


213

नाम स्टार्टअप के साथ एक वर्ग बनाएँ यह आपकी मदद करेगा ..

public class Startup
{
   public void Configuration(IAppBuilder app)
   {
      app.MapSignalR();
   }
}

116
इसके अतिरिक्त, यदि आपका स्टार्टअप क्लास किसी तरह से आपके डिफ़ॉल्ट नाम के स्थान पर नहीं है, तो इस <appSettings>क्षेत्र की तरह एक वेब कॉन्फिगर लाइन जोड़ें :<add key="owin:AppStartup" value="[NameSpace].Startup" />
एंड्रयू ग्रे

7
नोवाडे, ओवेन को कॉन्फ़िगर करने के 3 तरीके हैं: asp.net/aspnet/overview/owin-and-katana/…
Jaider

22
@ एंड्रयू-भूरे रंग की टिप्पणी के अलावा, डाल [assembly:OwinStartupAttribute(typeof(Identity_Test.Startup))]में AssemblyInfo.csभी काम करेगा।
अचिल्स

14
आपको Microsoft.Owin.Host.SystemWeb पैकेज की भी आवश्यकता है अन्यथा स्टार्टअप को नहीं कहा जाता है
rjlopes

7
स्टार्टअप क्लास के नाम स्थान से ठीक पहले हम इस लाइन को भी जोड़ सकते थे: [assembly: OwinStartup(typeof([YourStartupNamespaceName].Startup))]
मिन्ह गुयेन

194

हमारे प्रोजेक्ट में, हमें OWIN कार्यक्षमता की आवश्यकता नहीं थी, इसलिए हमने शुरुआती ASP.NET MVC टेम्पलेट प्रोजेक्ट से सभी ओवेन संदर्भ हटा दिए। OWIN स्टार्टअप क्लास को हटाने के बाद समस्या उत्पन्न हुई।

समस्या मेरे बिन फ़ोल्डर में अतिरिक्त ओवेन डीएल की थी। जब मैंने उन्हें हटा दिया, तो समस्या हल हो गई। आपको बिन फ़ोल्डर को हटाकर उन्हें हटाना चाहिए। क्लीन सॉल्यूशन इन dll को डिलीट नहीं करता है।

किसी तरह, IIS अभी भी जब वे बिन फ़ोल्डर में हैं OWIN dll निष्पादित करता है।


6
मुझे भी यह समस्या थी और यह भी सुनिश्चित करना था कि सन्दर्भ किसी OWIN DLL का संदर्भ न दें।
हैकर

2
एक ही मुद्दा और एक ही समाधान। हालाँकि मेरे मामले में मेरे पास सिग्नल की एक शाखा और सिग्नल रहित एक शाखा थी। जब स्विचिंग शाखाएँ सिग्नल सिग्नल की सफाई के बाद भी बनी रहती हैं। मुझे उन्हें मैन्युअल रूप से हटाने की आवश्यकता थी।
क्विलिस

3
बस यह कहने के लिए एक नोट का शाब्दिक अर्थ है कि बिन फ़ोल्डर न केवल विज़ुअल स्टूडियो से "क्लीन सॉल्यूशन" का उपयोग कर रहा है, जो मेरे मामले में सबसे DLL को हटा रहा था, लेकिन सभी को नहीं।
एलन मैकडोनाल्ड

1
मेरे लिए काम करने वाली कोई चीज OWIN संदर्भों को हटाने के बाद है और यह अभी भी ठीक से काम नहीं कर रहा है, एक ऐपसेटिंग के <add key="owin:AutomaticAppStartup" value="false"/>रूप में जोड़ रहा था । लोगों को यह कोशिश करने के लिए बस कुछ सलाह और यह अभी भी सफल नहीं है।
लैटेंटडेनिस

1
जिन लोगों के लिए यह काम नहीं करता था, वे सुनिश्चित करें कि आपके द्वारा प्रोजेक्ट फ़ोल्डर में जाने वाले बिन फ़ोल्डर को हटाने के बाद भी और ओविन डीएलई के संदर्भों को हटा दें। मेरे मामले में मैंने बिन फोल्डर को डिलीट कर दिया, लेकिन भूल गया कि मेरे पास (। अप्रयुक्त) संदर्भ .csproj फाइल में बैठे हैं।
akousmata

104

Visual Studio 2013 RC2 पर, इसके लिए एक टेम्प्लेट है। बस इसे App_Start फ़ोल्डर में जोड़ें।

यहां छवि विवरण दर्ज करें

टेम्पलेट इस तरह के एक वर्ग का उत्पादन करता है:

using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(WebApiOsp.App_Start.Startup))]

namespace WebApiOsp.App_Start
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
        }
    }
}

3
VS2015 को इसकी भी आवश्यकता थी
टॉम स्टिकेल

2
इसने मेरे लिए यह किया - मैंने Startup.cs फ़ाइल बनाई और इसे सही ढंग से पॉप्युलेट किया, लेकिन याद किया कि इसे App_Store फ़ोल्डर में होना चाहिए। मेरी देव मशीन पर ठीक ठाक है, लेकिन एक बार प्रकाशित होने के बाद यह गलत हो रहा था। धन्यवाद!
जॉन पीटरसन

ऐप जोड़ना याद रखें। MapSignalR (); कॉन्फ़िगरेशन (IAppBuilder एप्लिकेशन) में, बाकी 404 जब बुला दिया जाता है [yoursite] / signalr
कैस्पर Halvas जेन्सेन

45

यदि आप OWIN स्टार्टअप का उपयोग नहीं करना चाहते हैं, तो यह वह है जिसे आपको अपने साथ जोड़ना चाहिए web.config फ़ाइल में :

AppSettings के तहत निम्नलिखित पंक्ति जोड़ें:

    <add key="owin:AutomaticAppStartup" value="false" />

यह आपके web.config में कैसा दिखना चाहिए:

  <appSettings>
    <add key="owin:AutomaticAppStartup" value="false" />
  </appSettings>

1
यह वास्तव में पूर्ण उत्तरों में से एक है। यदि आप web.config सेटिंग में बहुत अधिक नहीं हैं, तो यह पता लगाना कठिन है कि आपको xml फ़ाइल में एक कुंजी और मान जोड़ना चाहिए
makoshichi

25

Startup.csफ़ाइल के लिए एक नज़र है , आप इनमें से एक को याद कर सकते हैं। यह फ़ाइल OWIN के लिए प्रवेश बिंदु है, इसलिए ऐसा लगता है कि यह गायब है। पर एक नज़र डालेंOWIN Startup classव्हाट्सएप को समझने के लिए यहां ।

जैसे ही आपकी त्रुटि निर्दिष्ट होती है, आप निम्न करके web.config में इसे अक्षम कर सकते हैं ...

OWIN स्टार्टअप खोज को अक्षम करने के लिए, ऐपसेटिंग ओविन जोड़ें: अपने web.config में "false" के मान के साथ AutomaticAppStartup


5
मैं जोड़ा <add key="owin:AutomaticAppStartup" value="false" />करने के लिए <appSettings>समूह और Startup.cs अब जरूरत थी।
वेबवार्ता

@webworm, मैं ऊपर उल्लेख किया है।
क्रिश्चियनदेव

2
@christiandev वास्तव में क्या करेगा <add key="owin:AutomaticAppStartup" value="false" />? क्या यह किसी भी कार्यक्षमता को अक्षम करेगा? क्या हमें किसी OWIN कार्यक्षमता का उपयोग करने में सक्षम होने के लिए बाद में ऐप शुरू करने की आवश्यकता है?
फ्लो

18

सबसे पहले आपको अपनी स्टार्टअप फ़ाइल बनानी होगी और उसके बाद आपको इस फ़ाइल के लोकेशन को web.config में, इस लाइन के साथ appSettings टैग के अंदर निर्दिष्ट करना होगा:

<add key="owin:AppStartup" value="[NameSpace].Startup"/>

इसने मेरी समस्या हल कर दी।


11

मुझे यह समस्या थी, यह समझें कि ओपी के मामले में यह गलत नहीं था, लेकिन मेरे मामले में मेरे पास एक स्टार्टअप क्लास था, यह सिर्फ डिफ़ॉल्ट रूप से नहीं मिल रहा था।

मेरी समस्या मेरे विधानसभा नाम में रिक्त स्थान थी, और इसलिए डिफ़ॉल्ट नाम स्थान विधानसभा नाम से अलग था, इसलिए स्टार्टअप वर्ग के लिए नाम स्थान विधानसभा नाम से अलग था।

जैसा कि त्रुटि से पता चलता है, कन्वेंशन द्वारा यह [असेंबली नेम] के लिए दिखता है। क्लास के लिए स्टार्टअप ... इसलिए सुनिश्चित करें कि आपके स्टार्टअप क्लास के लिए नेमस्पेस असेंबली नाम के समान है। मेरे लिए समस्या का समाधान किया।


1
मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। मेरे प्रोजेक्ट के नाम में एक '-' हाइफ़न था, जिसे वीएस द्वारा अंडरस्कोर में बदल दिया गया था, इसलिए नाम स्थान और स्टार्टअप क्लास अनिवार्य रूप से अलग थे।
LDJ

7

मैंने यहां अधिकांश अनुशंसित सुधारों की कोशिश की, और फिर भी त्रुटि संदेश से बच नहीं सका। मैंने अंत में कुछ सुझाए गए समाधानों के संयोजन का प्रदर्शन किया:

  1. इस प्रविष्टि को AppSettingsमेरे web.config के अनुभाग के शीर्ष पर जोड़ा गया :

    <add key="owin:AutomaticAppStartup" value="false"/>

  2. मेरी परियोजना के संदर्भ नोड का विस्तार किया और स्ट्रिंग में मौजूद सभी चीजों को हटा दिया OWIN। (मुझे लगा कि ऐसा करना सुरक्षित है क्योंकि मेरा संगठन भविष्य में सक्रिय प्रदाता नहीं है)

मैंने फिर क्लिक किया Runऔर मेरा मुखपृष्ठ सही से लोड हुआ।


4

मेरे मामले में, मैंने परियोजना का नाम बदल दिया था और इसे फ़ोल्डर संरचना में बदल दिया था। मैंने पाया कि रूटनाम और असेंबलीनाम को .csproj फ़ाइल में अपडेट करना जहाँ त्रुटि डाली जा रही थी, त्रुटि को हल किया गया। यदि आपके पास अपनी परियोजना के संशोधित मार्ग हैं, तो मैं इसे भी जाँचने की सलाह दूंगा।

<RootNamespace>Company.Product.WebAPI</RootNamespace>
<AssemblyName>Company.Product.WebAPI</AssemblyName>

ब्रो कुडोस यू टू ब्रो, इस पर हमेशा की तरह अटका हुआ था और जब तक मैंने इसे नहीं पढ़ा, तब तक कोई हल नहीं मिला, मैंने इसे मैन्युअल रूप से बदलने के बाद असेंबली को अपडेट नहीं किया था। अब यह काम कर रहा है! आपको बहुत - बहुत धन्यवाद!
मेसन

3

मेरा मामला? मेरे पास स्टार्टअप फाइल थी, लेकिन प्रोजेक्ट में इसे बाहर रखा गया है। मैंने इसे शामिल किया और त्रुटि को छोड़ दिया।


3

जब आप MVC प्रोजेक्ट के साथ Azure AD का उपयोग करते हैं तो विज़ुअल स्टूडियो 2015 में इसका सामना किया जा सकता है। यहाँ यह स्टार्टअप फाइल को App_Start फ़ोल्डर में Startup.Auth.cs के रूप में बनाता है, लेकिन यह गायब होगा

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

तो इसे जोड़ें और आपको जाने के लिए अच्छा होना चाहिए। यह नाम स्थान के प्रारंभ से पहले जाता है।


2

यह अपवाद भी संभव है (यहां तक ​​कि जब आपके पास एक सही ढंग से कॉन्फ़िगर स्टार्टअप वर्ग है) तो आईआईएस एक्सप्रेस के माध्यम से चल रहा है और आपकी वर्चुअल निर्देशिका सही तरीके से कॉन्फ़िगर नहीं की गई है।

जब मुझे इस समस्या का सामना करना पड़ा, तो रिज़ॉल्यूशन प्रोजेक्ट गुणों के 'वेब' टैब में 'वर्चुअल निर्देशिका बनाएँ' बटन दबाने के लिए था (पीडीएफ 2013 का उपयोग करके)


2

क्या आप वास्तव में अपने प्रोजेक्ट में OWIN जोड़ने की कोशिश कर रहे हैं या यह कुछ अप्रत्याशित है?

  1. यदि आप OWIN जोड़ना चाहते हैं, तो स्टार्टअप क्लास को जोड़ने का तरीका है।

  2. यदि आपको ओविन के संदर्भ में कोई आवश्यकता नहीं है :

    अपने / बिन फ़ोल्डर से Owin.dll हटाएं

    Owin.dll स्टार्टअप वर्ग की पहचान करने की कोशिश कर रहा है।


1

जब मैं पूरी तरह से समझा नहीं सकता कि मेरे लिए यह समस्या क्यों हल हो गई, मैं एक समस्या में भाग गया जैसे कि मैंने अपने एपीआई प्रोजेक्ट को अलग करने के लिए बनाया \debug और \releaseफ़ोल्डरों के । एक बार जब मैंने वापस बदला कि एक \binफोल्डर बनाने के लिए वापस बदलना काम शुरू कर दिया है।

मैंने अपना अनुभव यहाँ लिखा है: ASP.NET प्रोजेक्ट फ़ाइल का नाम बदलने के बाद IIS एक्सप्रेस में चलने के लिए OWIN स्टार्टअप क्लास नहीं मिल सकता है


1

मैंने सिग्नलआर के साथ प्रयोग करने और फिर इसे परियोजना से हटाने के बाद इस समस्या में भाग लिया। समाधान के लिए मुझे रिमोट सर्वर पर साइट के लिए बिन फ़ोल्डर की सामग्री को हटाना पड़ा और फिर से प्रकाशित करना पड़ा।


1

बस जाँच करें कि आपकी packages.configफ़ाइल में जाँच की गई है (जब बाहर रखा गया है, तो खोजकर्ता में एक लाल रंग की प्रविष्टि नहीं दिखाई जाएगी)। कुछ विचित्र कारण से इस मुद्दे को छोड़ दिया गया।


0

मुझे वही त्रुटि मिलती रही जब मैंने VS2013 में ब्राउज़र लिंक डैशबोर्ड का उपयोग करके अपनी परियोजना शुरू की। लेकिन, जब मैंने अपना प्रोजेक्ट डिबग मोड में चलाया, तो यह काम करेगा। मुझे यह पता नहीं चल सका है कि ब्राउज़र लिंक डैशबोर्ड को क्यों और कैसे काम करना है। मैंने स्टार्टअप फ़ाइल की जाँच की, यह ठीक था, एपसेटिंग लाइन को जोड़ा जैसा कि कुछ उत्तरों में वर्णित है "", लेकिन कुछ भी काम नहीं किया।

जाहिरा तौर पर, मैं क्या गलत कर रहा था ब्राउज़र डैशबोर्ड में गलत लिंक पर क्लिक कर रहा था। सभी सॉल्यूशंस प्रोजेक्ट्स लिंक ब्राउज़र डैशबोर्ड में दिखाई देते हैं, लेकिन केवल स्टार्टअप प्रोजेक्ट्स लिंक ही काम करते हैं। आपको स्टार्टअप प्रोजेक्ट के लिंक पर क्लिक करना होगा।

उदाहरण: मेरे पास 2 परियोजनाएं हैं, दोनों ब्राउज़र डैशबोर्ड में दिखाई देते हैं, लेकिन स्टार्ट अप प्रोजेक्ट के रूप में चिह्नित केवल एक ही काम करेगा (समाधान एक्सप्लोरर में बोल्ड के रूप में दिखाता है।) मुझे लगा कि इससे किसी को स्पष्ट करने में मदद मिल सकती है, यह मेरी लागत 2 है। स्पष्ट पर ठोकर खाने के दिन।


0

मुझे यह समस्या तब हुई जब मुझे टीएफएस पर नवीनतम मिला जबकि अन्य परियोजनाएं वीएस के कई उदाहरणों में खुली थीं। मेरे पास पहले से ही सभी सुधार हैं। फिर से खोलना वीएस ने समस्या को तय किया।


0

मेरे मामले में मैंने ftp सर्वर में लॉग इन किया। Ftp सर्वर पर वर्तमान फ़ाइलों का बैकअप लिया। एफ़टीपी सर्वर से मैन्युअल रूप से सभी फ़ाइलों को हटा दें। स्वच्छ समाधान, कोड redeployed। इसने काम कर दिया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.