Uso métodos web en un par de sitios en el sitio de intranet en los que trabajo y funcionan bien, sin embargo, una página arroja constantemente un error HTTP 401 cada vez que intento acceder el método webVB.Net Método web dando un error HTTP401 no autorizado
Im no estoy seguro de cómo abordar este problema, he intentado comentar todo fuera del método web, y todavía obtener el error 401, incluso una conexión básica a la base de datos solo SELECT 1
no aparece cuando veo el DB con perfilador.
Mi web.config es la misma para todas las páginas en la intranet y no puedo ver ninguna diferencia en mi página ASP.Net en comparación con las páginas donde funcionan los métodos web.
¿Alguien puede decirme por qué esto podría estar pasando solo por esta página y otras no? Y también ¿cómo puedo evitar este problema?
el código ASP.Net (llamado desde el OnClientClick de un botón)
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()
}
El script manager
<asp:ScriptManager ID="ScriptManager1"
runat="server"
EnableScriptGlobalization="true"
EnablePageMethods="true"
EnableScriptLocalization="true">
</asp:ScriptManager>
el código 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
Los resultados Fiddler
<!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>
ACTUALIZACIÓN:
He intentado usar hacerse pasar por el usuario en un código como la mitad hacia abajo en este enlace http://support.microsoft.com/kb/306158 sin embargo yo puedo hacer eso ya que el método es un WebMethod.
También he intentado añadir el acceso anónimo a mi página de inicio de sesión en Web.config como se sugiere a continuación, pero esto también ya no haya ayudado
IIS tiene derechos de acceso al archivo al que intenta acceder. (Acceso a nivel NTFS). Como el Servicio lo ejecuta IIS, deberá otorgar acceso al Usuario del grupo de aplicaciones (o Usuarios). Pruebe agregar IIS_IUSRS Group con acceso completo. – Nicholas