2012-05-10 8 views
6

मैं इंट्रानेट साइट पर काम करने वाले कुछ स्थानों में वेब विधियों का उपयोग करता हूं और वे ठीक काम करते हैं, हालांकि एक बार जब भी मैं एक्सेस करने का प्रयास करता हूं तो एक पृष्ठ लगातार HTTP 401 त्रुटि फेंक रहा है वेब विधि।VB.Net वेब विधि HTTP401 को अधिकृत त्रुटि नहीं

मुझे यकीन नहीं है कि इस समस्या को कैसे अपनाना है, मैंने वेब विधि से सबकुछ टिप्पणी करने का प्रयास किया है, और अभी भी 401 त्रुटि प्राप्त है, यहां तक ​​कि डेटाबेस के लिए मूल कनेक्ट भी SELECT 1 दिखाता है जब मैं डीबी देखता हूं प्रोफाइलर के साथ।

मेरा वेब.कॉन्फिग इंट्रानेट के सभी पृष्ठों के लिए समान है और मैं उन पृष्ठों की तुलना में अपने एएसपी.Net पृष्ठ में कोई अंतर नहीं देख सकता जहां वेब विधियां काम करती हैं।

क्या कोई मुझे बता सकता है कि यह सिर्फ इस पृष्ठ के लिए क्यों हो रहा है और दूसरों को नहीं? और मैं इस समस्या के आसपास कैसे हो सकता हूं?

ASP.Net संहिता (एक बटन के OnClientClick से कहा जाता है)

function SendEmails() 
    { 

     var Grid = document.getElementById("instructorGrid"); 
     var mailBody = document.getElementById("txtMailBody"); 
     var ddlDutyPeriod = document.getElementById("DDL_DutyPeriods"); 

     var cell = Grid.rows[i].cells; 
     var HTML = cell[0].innerHTML; 
     var chkBox = cell[5].innerHTML; 

     PageMethods.TestMethod() 
    } 

स्क्रिप्ट प्रबंधक

<asp:ScriptManager ID="ScriptManager1" 
         runat="server" 
         EnableScriptGlobalization="true" 
         EnablePageMethods="true" 
         EnableScriptLocalization="true"> 
    </asp:ScriptManager> 

VB.Net कोड

<System.Web.Services.WebMethod()> 
    Public Shared Sub TestMethod() 

     'Dim conn1 As New SqlConnection(ConfigurationManager.ConnectionStrings("Blueprint").ToString()) 

     'Dim cmd2 As New SqlCommand 

     'cmd2.CommandType = CommandType.Text 
     'cmd2.CommandText = "SELECT 1" 


     'cmd2.Connection = conn1 

     'conn1.Open() 
     'cmd2.ExecuteNonQuery() 
     'conn1.Close() 

    End Sub 

फ़िडलर परिणाम

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> 
<HTML><HEAD><TITLE>Not Authorized</TITLE> 
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD> 
<BODY><h2>Not Authorized</h2> 
<hr><p>HTTP Error 401. The requested resource requires user authentication.</p> 
</BODY></HTML> 

अद्यतन:

मैं आधे रास्ते की तरह कोड में उपयोगकर्ता के लिए इस लिंक http://support.microsoft.com/kb/306158 में नीचे नाम से कार्य तथापि मैं नहीं कर सकते कि विधि एक webmethod है के बाद से कर उपयोग करने की कोशिश की है।

मैं भी नीचे के रूप में सुझाव दिया web.config में मेरी प्रवेश पृष्ठ पर अनाम पहुंच जोड़ने की कोशिश की है, लेकिन यह भी

+0

क्या आईआईएस के पास उस फ़ाइल तक पहुंच अधिकार है जिसका आप उपयोग करने का प्रयास कर रहे हैं। (एनटीएफएस-स्तर का उपयोग)। चूंकि सेवा आईआईएस द्वारा चलायी जाती है, आपको एप्लिकेशन पूल उपयोगकर्ता (या उपयोगकर्ता) तक पहुंच प्रदान करने की आवश्यकता होगी। पूर्ण पहुंच के साथ IIS_IUSRS समूह जोड़ने का प्रयास करें। – Nicholas

उत्तर

1

यह एक लंबे शॉट है मदद की नहीं चढ़े, जिस पर आप अपने web.config में यह क्या है?

<system.web.extensions> 
    <scripting> 
    <webServices> 
     <authenticationService enabled="true" /> 
    </webServices> 
    </scripting> 
</system.web.extensions> 
+0

नहीं, क्या मेरे पास होना चाहिए? – Purplegoldfish

+0

मुझे पहले यह समस्या हुई है और इसे हल करने में यह जोड़ा गया है - मैंने एक लिंक ढूंढने में कामयाब रहा जिसने इसे समझाया लेकिन अब इसे नहीं मिल सकता है (यदि मैं इसे पार करता हूं तो पोस्ट करूंगा) –

+0

धन्यवाद केविन, मैंने बस इसे जोड़ने का प्रयास किया लेकिन यह नहीं किया सहायता :( – Purplegoldfish

2

मुझे लगता है कि आप फॉर्म प्रमाणीकरण का उपयोग कर रहे हैं। आपको अपना लॉगिन पेज अनाम पहुंच देना होगा।

<location path="Login.aspx"> 
    <system.web> 
    <authorization> 
     <allow users="*"/> 
    </authorization> 
    </system.web> 
</location> 
+0

क्या यह सिर्फ इस पृष्ठ को प्रभावित करेगा, हालांकि, मैं एक ही वेबसाइट के भीतर अन्य पृष्ठों पर वेब विधियों का उपयोग करता हूं और वे ठीक काम करते हैं। – Purplegoldfish

+0

मेरे पास पिछले हफ्ते मेरे साथ भी यही बात थी। मुझे पता लगाने में कोई जानकारी नहीं थी यह एक पृष्ठ के लिए क्यों हो रहा था और दूसरा नहीं। इसके अलावा, आपके लॉग इन पेज पर अनाम पहुंच जोड़ने की अनुशंसा की जाती है और समझ में आता है। – TheGeekYouNeed

+0

कोशिश की लेकिन यह मदद नहीं करता है। – Purplegoldfish

2

अपनी web.config फ़ाइल में प्रतिरूपण टैग जोड़ें। यह आपकी वेब विधि तक पहुंचने का प्रयास करते समय एक विशिष्ट खाते के साथ प्रतिरूपण की अनुमति देनी चाहिए। दिशा के लिए यह समर्थन article देखें।

<system.web> 

<identity impersonate="true" userName="Yang" password="bar" /> 

</system.web> 
संबंधित मुद्दे