首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ASP.Net AJAX调用自定义SharePoint web服务会出现403错误吗?

从ASP.Net AJAX调用自定义SharePoint web服务会出现403错误吗?
EN

Stack Overflow用户
提问于 2010-03-16 23:13:42
回答 1查看 767关注 0票数 0

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

这是我的web服务类:

代码语言:javascript
复制
[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的东西:

代码语言:javascript
复制
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中列出。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-17 23:05:32

好的老的进程监控器来拯救。

事实:

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

解决方案:

由于请求不是通过SharePoint发出的,而且默认情况下身份模拟也是打开的,因此web应用程序的BIN目录上的默认NTLM权限不够好-用户的帐户没有访问BIN目录或其中的DLL的权限。

我们授予NT AUTHORITY\Authenticated用户对该文件夹的读取访问权限(不是读取和执行,不是列出文件夹内容,只是读取),一切正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2455556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档