2016-07-22 7 views
5

पर एएसपी.NET कोर 404 त्रुटि आईआईएस 10 पर चल रहे एएसपी.नेट कोर वेब एप्लिकेशन के साथ मुझे कोई समस्या है। मैं AngularJS के साथ एकल पृष्ठ एप्लिकेशन विकसित कर रहा हूं।आईआईएस 10

index.html पूरी तरह से लोड करता है लेकिन बैकएंड अनुरोध आईआईएस 10 पर 404 त्रुटि कोड के साथ विफल हो रहे हैं। आईआईएस एक्सप्रेस के साथ विजुअल स्टूडियो से यह पूरी तरह से काम करता है।

क्या कोई यह बता सकता है कि मैं बैकएंड अनुरोधों को कैसे ठीक कर सकता हूं?

यहाँ मेरी Program.cs

public static void Main(string[] args) 
{ 
    var host = new WebHostBuilder() 
     .UseKestrel() 
     .UseContentRoot(Directory.GetCurrentDirectory()) 
     .UseIISIntegration() 
     .UseStartup<Startup>() 
     .Build(); 

    host.Run(); 
} 

है और यहाँ Startup.cs

से मेरी कॉन्फ़िगर विधि
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
{ 
    app.UseDefaultFiles(); 

    app.UseStaticFiles(); 

    app.UseIdentity(); 

    // Custom middleware for Angular UI-Router 
    app.Use(async (context, next) => 
    { 
     if (!Path.HasExtension(context.Request.Path.Value) 
     && context.Request.HttpContext.Request.Headers["X-Requested-With"] != "XMLHttpRequest" 
     && context.Request.Method.ToUpper() != "POST" 
     && context.Request.Method.ToUpper() != "PUT" 
     && context.Request.Method.ToUpper() != "DELETE") 
     { 
      await context.Response.WriteAsync(File.ReadAllText(env.WebRootPath + "/index.html")); 
     } 

     await next(); 
    }); 

    app.UseMvc(routes => 
    { 
     routes.MapRoute(
      name: "default", 
      template: "api/{controller=Home}/{action=Index}/{id?}"); 
    }); 
} 
+0

फेंक दिया गया था एएसपी.नेट कोर लॉगिंग सक्षम करें (शायद डीबग लॉग स्तर के साथ) और देखें कि यह कोई संदेश क्यों है कि यह –

+0

विफल क्यों है, अपना वेब.कॉन्फिग भी पोस्ट करें। –

+0

क्या आपने एमवीसी सेवाओं को कॉन्फ़िगर किया है? –

उत्तर

3

आप कोड का छोटा बाज के साथ अपने मशीन पर काम कर रहा है। एक अच्छा समस्या निवारण चरण यह पता लगाने के लिए है कि समस्या आपके एएसपी.NET कोर एप्लिकेशन या आपके आईआईएस होस्टिंग कॉन्फ़िगरेशन के साथ है या नहीं।

इसे अपनी परियोजना की जड़ से आज़माएं।

Hosting environment: Production 
Content root path: C:\MyApplicationPath 
Now listening on: http://localhost:5000 
Application started. Press Ctrl+C to shut down. 

आपके ब्राउज़र में दिए ये दो URL पर जाएं:

dotnet restore 
dotnet run 

आप कुछ इस तरह देखेंगे। अगर वे काम नहीं करते हैं, तो आपके आवेदन में कुछ गड़बड़ है। अगर वे काम करते हैं, तो आपके आईआईएस होस्टिंग में कुछ गड़बड़ है।

localhost:5000  // you will see your index.html page 
localhost:5000/api // you will see your default routes output 
+1

धन्यवाद मैं इसे ठीक कर सकता हूं। समस्या मेरे आवेदन के साथ थी, लेकिन आवेदन के साथ कुछ गलत होने पर 404 त्रुटि फेंकना थोड़ा अजीब बात है। –

+1

आवेदन के साथ क्या गलत था? आपके फिक्स में क्या शामिल था? –

+1

समस्या एक लापता विन्यास फाइल थी। मेरे पास आवश्यक कनेक्शन तारों के साथ विकास, स्टेजिंग और उत्पादन के लिए 3 पर्यावरण ऐप्स सेटिंग्स हैं। डिफ़ॉल्ट प्रकाशन विकल्प में केवल appsettings.json शामिल है। तो मुझे सभी पर्यावरण सेटिंग्स की प्रतिलिपि बनाने के लिए मान को सेटिंग्स सेटिंग्स * .json में बदलने की आवश्यकता है। –

6

मेरे मामले समस्या यह है कि मेरी नियंत्रक एक अपवाद फेंक दिया, था इस प्रकार ढांचे अपवाद संचालक पृष्ठ उपलब्ध नहीं है, इस प्रकार 404 त्रुटि था का उपयोग करने की कोशिश की, नियंत्रक ही 500 त्रुटि