Ich verwende Web-Methoden an ein paar Stellen in der Intranet-Site im arbeiten und sie funktionieren gut, jedoch eine Seite wirft ständig einen HTTP 401-Fehler jedes Mal, wenn ich versuche zuzugreifen die Webmethode.VB.Net Web-Methode, die einen HTTP401 Not Authorized Fehler
Ich bin nicht sicher, wie dieses Problem anzugehen, ich habe versucht, alles aus der Web-Methode zu kommentieren, und immer noch die 401 Fehler, selbst eine einfache Verbindung mit der Datenbank nur SELECT 1
nicht erscheint, wenn ich die DB mit Profiler.
Meine web.config ist die gleiche für alle Seiten im Intranet und ich kann keine Unterschiede in meiner ASP.Net-Seite im Vergleich zu Seiten, auf denen Webmethoden funktionieren, sehen.
Kann mir jemand sagen, warum das nur für diese Seite passieren könnte und nicht für andere? Und wie kann ich dieses Problem umgehen?
Der ASP.Net-Code (aus dem OnClientClick einer Taste genannt)
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()
}
Das Skript-Manager
<asp:ScriptManager ID="ScriptManager1"
runat="server"
EnableScriptGlobalization="true"
EnablePageMethods="true"
EnableScriptLocalization="true">
</asp:ScriptManager>
Der VB.Net-Code
<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
Die Fiddler Ergebnisse
<!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>
UPDATE:
ich versucht habe, mit dem Benutzer in Code wie auf halbem Weg nach unten in diesem Link Identitätswechsel http://support.microsoft.com/kb/306158 jedoch, dass kann ich nicht tun, da das Verfahren ein Webmethod ist.
Ich habe auch versucht, den anonymen Zugriff auf die Anmeldungsseite in web.config Hinzufügen wie unten vorgeschlagen, aber das hat nicht auch
Hat IIS Zugriffsrechte für die Datei, auf die Sie zugreifen möchten. (NTFS-Level-Zugriff). Da der Dienst von IIS ausgeführt wird, müssen Sie dem Anwendungspoolbenutzer (oder den Benutzern) Zugriff gewähren. Versuchen Sie, IIS_IUSRS Group mit vollem Zugriff hinzuzufügen. – Nicholas