Web services 从ASP.NETAJAX调用自定义SharePoint web服务会出现403错误?

Web services 从ASP.NETAJAX调用自定义SharePoint web服务会出现403错误?,web-services,asp.net-ajax,sharepoint-2007,permissions,Web Services,Asp.net Ajax,Sharepoint 2007,Permissions,我开发了一个定制的SharePoint web服务,并将其部署到/_vti_bin/myservice.asmx。作为一个普通用户,浏览到该ASMX URL效果很好。当我尝试根据需要浏览到/_vti_bin/myservice.asmx/js以从ASP.Net AJAX调用此服务时,我得到了403。如果我浏览到它作为不低于农场管理员网站集管理员不工作,我会得到一个403。农场管理员作为本地服务器管理员的角色也完全可能允许它工作 这是我的web服务类: [WebService(Namespace

我开发了一个定制的SharePoint web服务,并将其部署到/_vti_bin/myservice.asmx。作为一个普通用户,浏览到该ASMX URL效果很好。当我尝试根据需要浏览到/_vti_bin/myservice.asmx/js以从ASP.Net AJAX调用此服务时,我得到了403。如果我浏览到它作为不低于农场管理员网站集管理员不工作,我会得到一个403。农场管理员作为本地服务器管理员的角色也完全可能允许它工作

这是我的web服务类:

[WebService(Namespace = "http://sharepointservices.genericnamespace.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class ApprovalSvc : System.Web.Services.WebService
{
    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
    public XmlDocument GetInboxItems(string inboxName, string s_Id)
    {
      // code removed
    }
}
这是我的web部件代码的艺术,我在其中连接ASP.Net AJAX内容:

ScriptManager scriptMgr = new ScriptManager();
string webUrl = SPContext.Current.Web.Url;
ServiceReference srvRef = new ServiceReference(webUrl + "/_vti_bin/ApprovalSvc.asmx");
scriptMgr.Services.Add(srvRef);
this.Controls.Add(scriptMgr);

如果我以服务器场/服务器管理员身份登录,它就可以工作。否则,不会。web服务程序集位于GAC中&列在SafeControls中。有什么想法吗?

好的旧流程监控器来拯救

事实:

服务代码DLL位于web应用程序的bin目录中,因为它不能被签名b/c它引用未签名的DLL。 对服务DLL的请求来自ASP.Net&而不是SharePoint,特别是System.Web.Extensions程序集中的一个HttpModule。 解决方案:

由于请求不是通过SharePoint发出的,并且默认情况下还启用了身份模拟,因此web应用程序的BIN目录上的默认NTLM权限不够好-用户的帐户无法访问BIN目录或其中的DLL

我们为NT AUTHORITY\Authenticated用户提供了读取权限,不读取和执行,不列出文件夹内容,只读取文件夹,一切正常