2015-10-08 9 views
6

मेरे पास एक सर्वर (आईआईएस) पर होस्ट किया गया एक एमवीसी एप्लीकेशन है जो 3 एसक्यूएल डेटाबेस को इंगित करता है। यह महीनों के लिए मुद्दों के बिना चल रहा है।ओविन अमान्य यूआरआई: उरी स्ट्रिंग बहुत लंबा है

मुझे नए डेटाबेस को इंगित करने के लिए सभी 3 SQL डेटाबेस के लिए कनेक्शनस्ट्रिंग को बदलना पड़ा है।

अब जब मैं .. में मैं निम्नलिखित त्रुटि मिलती प्रवेश करने का प्रयास

enter image description here

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

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

यह निश्चित रूप से आईआईएस मुद्दे की तरह लगता है लेकिन मैं अपनी अंगुली को उस पर नहीं डाल सकता।

क्या कोई व्यक्ति ओविन के साथ पहले इस पर आ गया है या इस मुद्दे का निदान करने वाले डीबगिंग चरणों पर सलाह दे सकता है?

Startup.cs

public partial class Startup 
{ 
    private static bool IsAjaxRequest(IOwinRequest request) 
    { 
     IReadableStringCollection query = request.Query; 
     if ((query != null) && (query["X-Requested-With"] == "XMLHttpRequest")) 
     { 
      return true; 
     } 
     IHeaderDictionary headers = request.Headers; 
     return ((headers != null) && (headers["X-Requested-With"] == "XMLHttpRequest")); 
    } 


    public void ConfigureAuth(IAppBuilder app) 
    { 
     // Configure the db context, user manager and role manager to use a single instance per request 
     app.CreatePerOwinContext(ParentDbContext.Create); 
     app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); 
     app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create); 
     app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create); 
     app.CreatePerOwinContext(PrincipalManager.Create); 

     // Enable the application to use a cookie to store information for the signed in user 
     // and to use a cookie to temporarily store information about a user logging in with a third party login provider 
     // Configure the sign in cookie 
     app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
      LoginPath = new PathString("/Account/Login"), 
      Provider = new CookieAuthenticationProvider 
      { 
       // Enables the application to validate the security stamp when the user logs in. 
       // This is a security feature which is used when you change a password or add an external login to your account. 
       OnValidateIdentity = 
        SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser, Guid>(
         TimeSpan.FromMinutes(int.Parse(WebConfigurationManager.AppSettings["RefreshInterval"])), 
         (manager, user) => manager.GenerateUserIdentityAsync(user), 
         claim => new Guid(claim.GetUserId())), 
       OnApplyRedirect = ctx => 
       { 
        if (!IsAjaxRequest(ctx.Request)) 
        { 
         ctx.Response.Redirect(ctx.RedirectUri); 
        } 
       } 
      } 
     }); 

    } 
} 
+0

अपनी 'स्टार्टअप.cs' – haim770

+0

@ haim770 माफी माँगें जो मुझे शुरू करने के लिए शामिल करना चाहिए था। – heymega

+0

क्या आपने ब्राउज़र और सर्वर के बीच http-अनुरोधों को कैप्चर करने के लिए फिडलर या एफ 12 आदि का प्रयास किया है? –

उत्तर

1

जांच के घंटों के बाद मुझे अंततः समस्या मिली।

समस्या उपयोगकर्ता के लिए दावों की संख्या को जोड़ा गया था। एक बार जब हम दावों की संख्या कम कर देते हैं तो उसने फिर से काम करना शुरू कर दिया।

0

सबसे संभावित कारण यह है कि आप एक त्रुटि लूप में अटक कर रहे हैं। यदि डेटाबेस को प्रमाणीकरण जहां उपयोगकर्ता संग्रहीत किया जाता है तो विफल हो जाता है तो आपको त्रुटि पृष्ठ पर भेजा जाएगा जो प्रमाणीकरण को फिर से चलाने और विफल होने का प्रयास करेगा और आपको बार-बार त्रुटि पृष्ठ पर भेज देगा। प्रत्येक पास यह पिछले यूआरएल में अंततः इस राज्य तक पहुंच जाएगा।

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