2017-07-06 21 views
6

में 404 रिटर्न देता है मेरे पास यह (सरलीकृत) एएसपी.नेट कोर वेब एपीआई नियंत्रक है। जीईटी और पोस्ट दोनों कार्य मेरी मशीन पर अच्छी तरह से काम करता है। हालांकि, Azure पर तैनात केवल GET कार्रवाई ठीक से काम करता है। पोस्ट कार्रवाई का परिणाम 404 में होता है। कोई विचार?एएसपी.नेट कोर वेब एपीआई HTTP POST Azure

namespace Foo 
{ 
    using System; 
    using System.Collections.Generic; 
    using Microsoft.AspNetCore.Mvc; 

    [RequireHttps] 
    [Produces("application/json")] 
    [Area("Foo")] 
    [Route("[area]/Api/[controller]")] 
    public class BarController : Controller 
    { 
    [HttpGet] 
    public IEnumerable<string> Get() 
    { 
     return new[] {"Hello", "World!"}; 
    } 

    [HttpPost] 
    public void Post([FromBody] InputModel model) 
    { 
    } 

    public class InputModel 
    { 
     public int Foo { get; set; } 
    } 
    } 
} 

यह एक एएसपी.NET कोर एमवीसी अनुप्रयोग है जो पूर्ण .NET ढांचे को लक्षित करता है। इसे एक एज़ूर वेब ऐप के रूप में तैनात किया गया है। मैंने अपनी स्थानीय मशीन और Azure में Postman का उपयोग करके दोनों कार्यों का परीक्षण किया है।

+0

आपको वेब कॉन्फ़िगरेशन की जांच करें और देखें कि क्या POST अनुरोधों की अनुमति है – Nkosi

+0

मुझे पता चला कि मुझे 415 "असमर्थित मीडिया प्रकार" मिलता है यदि मैं सामग्री प्रकार/जेसन (जो 404 देता है) से सामग्री प्रकार को लगभग किसी अन्य चीज़ में बदलता है। लेकिन वह अभी भी मेरी समस्या का समाधान नहीं करता है। –

+0

क्या आप कुछ पोस्ट कर रहे हैं मॉडलबिन्डर '' 'इनपुट मॉडेल' वर्ग से जुड़ सकता है? –

उत्तर

2

यह कुछ निश्चित परिस्थितियों में लगता है एक नियंत्रक में कोई त्रुटि तब होती है जब, ASP.NET कोर की ओर से एक और अधिक उपयुक्त इस पोस्ट 500. चेक आउट के बजाय 404:

ASP.NET Core 2.0 site POST request resulting in 404 on Azure

जवाब में, यह था गलत डेटाबेस कनेक्शन स्ट्रिंग के कारण होता है (जो एक ऐसा मामला हो सकता है जब आप किसी अन्य वातावरण पर कोई एप्लिकेशन प्रकाशित करते हैं), लेकिन यह कुछ और हो सकता है।

यह सुनिश्चित नहीं है कि यह सामान्य त्रुटि क्यों नहीं फेंकता है, हो सकता है कि यह कस्टम त्रुटि पृष्ठ या उस तरह कुछ ऐसा रीडायरेक्ट करने का प्रयास करता हो।

इस सुझाव को देखने के लिए, किसी समस्या को अलग करने के लिए अपने POST नियंत्रक से सब कुछ हटाने का प्रयास करें। अगर यह 404 नहीं लौटाएगा, तो इसका मतलब है कि नियंत्रक में कुछ अपवाद फेंकता है।

+0

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

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