【发布时间】:2012-05-10 11:00:31
【问题描述】:
我在我正在工作的 Intranet 站点的几个地方使用 Web 方法,它们工作正常,但是每次我尝试访问 Web 方法时,一个页面都会不断抛出 HTTP 401 错误。
我不知道如何解决这个问题,我已经尝试用 web 方法评论所有内容,但仍然得到 401 错误,即使是基本连接到数据库,只是在执行 SELECT 1 时我看不到带有分析器的数据库。
我的 web.config 对于 Intranet 中的所有页面都是相同的,与使用 web 方法的页面相比,我看不出我的 ASP.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 中的代码中使用模拟用户,但我不能这样做,因为该方法是一种网络方法。
我还尝试按照下面的建议在 web.config 中添加对我的登录页面的匿名访问,但这也没有帮助
【问题讨论】:
-
IIS 是否有权访问您尝试访问的文件。 (NTFS 级访问)。由于服务由 IIS 运行,您需要授予对应用程序池用户(或用户)的访问权限。尝试添加具有完全访问权限的 IIS_IUSRS 组。