作業中のイントラネット サイトのいくつかの場所で Web メソッドを使用していますが、正常に動作しますが、Web メソッドにアクセスしようとするたびに、1 つのページで常に HTTP 401 エラーがスローされます。
この問題にアプローチする方法がわかりません。Web メソッドからすべてをコメントアウトしようとしましたが、それでも 401 エラーが発生しますSELECT 1
。プロファイラーで DB を監視しても、データベースへの基本的な接続が表示されません。
私の web.config はイントラネット内のすべてのページで同じであり、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の途中のようなコードでユーザーの偽装を使用しようとしましたが、メソッドが webmethod であるため、それを行うことはできません。
以下に示すように、web.configのログインページに匿名アクセスを追加しようとしましたが、これも役に立ちませんでした