SharePoint AJAX Web部件401.2/3错误
我最近开始编写一个在SharePoint中使用的AJAX web部件,我遇到了一个奇怪的错误。EnsureRepanelfix()似乎导致web部件抛出401错误;在日志中,401.2和401.3错误几乎同时出现。在这里和其他一些网站上做了一些研究之后,我对EnsureRepanelfix()做了一些更改,目前的更改如下:SharePoint AJAX Web部件401.2/3错误,ajax,sharepoint,web-parts,http-status-code-401,Ajax,Sharepoint,Web Parts,Http Status Code 401,我最近开始编写一个在SharePoint中使用的AJAX web部件,我遇到了一个奇怪的错误。EnsureRepanelfix()似乎导致web部件抛出401错误;在日志中,401.2和401.3错误几乎同时出现。在这里和其他一些网站上做了一些研究之后,我对EnsureRepanelfix()做了一些更改,目前的更改如下: void EnsurePanelFix { // Change AJAX doPostBack behavior to fix the update
void EnsurePanelFix
{
// Change AJAX doPostBack behavior to fix the update panel.
if (this.Page.Form != null)
{
String fixupScript = @"
if (typeof(_spBodyOnLoadFunctionNames) !== 'undefined'){
_spBodyOnLoadFunctionNames.push(""_initFormActionAjax"");
function _initFormActionAjax() {
if (_spEscapedFormAction == document.forms[0].action){
document.forms[0]._initialAction =
document.forms[0].action;
}
}
RestoreToOriginalFormAction = function() {
if (_spOriginalFormAction != null) {
if (_spEscapedFormAction==document.forms[0].action){
document.forms[0].action=_spOriginalFormAction;
}
_spOriginalFormAction=null;
_spEscapedFormAction=null;
document.forms[0]._initialAction = document.forms[0].action;
}
};
}";
string scriptKey = "UpdatePanelFixup";
if (!Page.ClientScript.IsClientScriptBlockRegistered(scriptKey))
ScriptManager.RegisterStartupScript(this, typeof(SpecDatabaseViewer), scriptKey, fixupScript, true);
ScriptManager.RegisterStartupScript(this,
typeof(SpecDatabaseViewer), "UpdatePanelFixup",
fixupScript, true);
}
通过查看安全日志,我看到故障是这样记录的:
Event Type: Failure Audit
Event Source: Security
Event Category: Object Access
Event ID: 560
Date: 1/6/2010
Time: 11:46:34 AM
User: NT AUTHORITY\NETWORK SERVICE
Computer: SHAREPOINT
Description:
Object Open:
Object Server: SC Manager
Object Type: SERVICE OBJECT
Object Name: WinHttpAutoProxySvc
Handle ID: -
Operation ID: {0,69477107}
Process ID: 404
Image File Name: C:\WINDOWS\system32\services.exe
Primary User Name: SHAREPOINT$
Primary Domain: SPDOMAIN
Primary Logon ID: (0x0,0x3E7)
Client User Name: NETWORK SERVICE
Client Domain: NT AUTHORITY
Client Logon ID: (0x0,0x3E4)
Accesses: Query status of service
Start the service
Query information from service
Privileges: -
Restricted Sid Count: 0
Access Mask: 0x94
存在多个故障审核,它们之间唯一不同的数据是操作ID
如果没有这段代码,一切都可以正常工作,有人能看到我会遇到身份验证或文件权限问题的任何原因吗?谢谢
编辑:我很确定这与ACL有关,但我不确定在哪里查找可能导致问题的资源。你能抓住,到底是什么URL生成了401.x错误?如果您使用Fiddler拦截呼叫,则必须可见
此外,这一描述似乎与您的案例非常相似:此外,我也碰巧偶然发现了该论坛帖子-David Wang的文章让我查看了日志中的子状态代码。不幸的是,它并没有帮助我解决这个问题。Fiddler显示,如果我尝试预览web部件,url是正确的。如果我尝试将web部件添加到页面,我会收到一个503(服务不可用)错误,然后即使预览web部件也会给我一个503,直到我重置IIS。url末尾的“233”后面是否真的有一个斜杠符号,或者这只是StackOverflow?如果答案是肯定的,那么-答案是否定的,这只是StackOverflow的注释格式。虽然这是个问题,但我可能只是拍了拍额头,然后继续前进。:)另外,我编辑了这个问题来说明这一点,但只是想把它扔出去,我很确定它与EnsurePanelFix()访问的资源的ACL条目有关。不过,我不确定如何解决这个问题,特别是考虑到我的开发用户可以完全控制一切。