Sharepoint 2010自定义WebService找不到网站应用程序的问题

错误描述:Net 开发WebService调用Microsoft.SharePoint.dll的服务器端对象模型,出现找不到网站的应用程序,或者出现500错误。

错误截图:

[Webservice调用页错误]

System.IO.FileNotFoundException: 找不到位于 http://localhost 的 Web 应用程序。请确认正确键入了此 URL。如果此 URL 需要提供现有内容,则系统管理员可能需要添加到指定应用程序的新请求 URL 映射。 在 Microsoft.SharePoint.SPSite..ctor(SPFarm farm, Uri requestUri, Boolean contextSite, SPUserToken userToken) 在 Microsoft.SharePoint.SPSite..ctor(String requestUrl) 在 WebApplication1.WebService1.GetWebID(String SiteUrl) 位置 C:\Users\Administrator\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\WebService1.asmx.cs:行号 26

[完整的错误提示]

[WebMethod(Description = "获取WebID")]
public string GetWebID(string SiteUrl)
{
     SPSite site = null;
    SPWeb web = null;
    site = new SPSite(SiteUrl);
     web = site.OpenWeb();
     return "ID:" + web.ID.ToString();
}

[测试代码,获取WebID]

最初以为是备用访问映射,或者修改Host文件的问题,因为找不到应用程序么,然后在浏览器里打开url,发现可以打开;再考虑是不是权限不够,因为是net调用sharepoint的dll,然后提权进行操作,发现也不能解决问题。

查了很久,后来发现,代码预览有问题,但是发布以后,调用WebService却没有问题,感觉很奇怪,但是没有办法进行调试了。后来查资料,发现说VS的iis对64位支持有问题,虽然自己并不清楚是不是这里的问题,但是发布以后,调试本机的iis,发现问题不存在了(感谢这位博主的文章,参考博文地址附后)。

解决方法: 把自己建的项目发布到本地iis,然后 属性 – web – 使用本地iis web服务器,填写格式[url:port/网站名称],然后可以调试了。

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/web/sharepoint/

修改以后,发现调用的时候,还有抛黄页的现象[“拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))”],后来,经朋友提醒,发现木有提权,菜鸟就是菜鸟,之前调试的晕头转向,居然忽略了提权。

提权代码:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
代码段….
});

再有就是,有人说写控制台,也会出现找不到应用程序的情况,将生成的目标平台调成64位,或者调成[Any cpu],自己到没有遇到过,不过这些对WebService调用sharepoint.dll是不管用的。

时间: 2024-09-10 04:29:24

Sharepoint 2010自定义WebService找不到网站应用程序的问题的相关文章

Sharepoint 2010 自定义WebService 找不到网站应用程序

错误描述:Net 开发WebService调用Microsoft.SharePoint.dll的服务器端对象模型,出现找不到网站的应用程序,或者出现500错误. 错误截图: [Webservice调用页错误] System.IO.FileNotFoundException: 找不到位于 http://localhost 的 Web 应用程序.请确认正确键入了此 URL.如果此 URL 需要提供现有内容,则系统管理员可能需要添加到指定应用程序的新请求 URL 映射. 在 Microsoft.Sha

SharePoint 2010 自定义 Delegate 控件

启动 Microsoft Visual Studio 2010 中的 SharePoint 开发工具. 在"文件"菜单上,指向"新建",然后单击"项目". 在"项目类型"中的"Visual Basic"或"C#"下,选择"空白 SharePoint 项目". 键入 EcmaScriptDelegate 作为项目名称.单击"确定". 在"S

SharePoint 2010 PowerShell学习 一 入门介绍

Windows PowerShell 是一个可供管理员完全访问适用的应用程序编程接口 (API) 的命令行脚本工具,并且对于直接与 SharePoint 2010 产品 交互以对 Web 应用程序.网站集.网站.列表等进行操作的功能,能够解除锁定.另外,管理员可以编写 cmdlet(发音为"command-let")的脚本,从而改善之前产品版本的体验. Windows PowerShell 2.0 是安装 SharePoint 2010 产品 的必备软件.如有必要,您在运行 Micro

SharePoint 2010 服务应用程序(Service Application)架构

SharePoint 2010认证考试出来之后,去把几个考试都考了一遍:70-573.70-576.70-667.70-668.如果你正有计划也去参加这几门认证考试,我可以提供的建议是:不要在11:30开始考70-668,否则到12:00吃饭的时候,你很可能还没有答完题目.70-668包含不少场景题,也就是给一个场景,包含各种Business Requirements.Technical Requirements.Recovery Requirements之类,然后基于此场景选出最佳方案.阅读并

一起谈.NET技术,SharePoint 2010 服务应用程序(Service Application)架构

SharePoint 2010认证考试出来之后,去把几个考试都考了一遍:70-573.70-576.70-667.70-668.如果你正有计划也去参加这几门认证考试,我可以提供的建议是:不要在11:30开始考70-668,否则到12:00吃饭的时候,你很可能还没有答完题目.70-668包含不少场景题,也就是给一个场景,包含各种Business Requirements.Technical Requirements.Recovery Requirements之类,然后基于此场景选出最佳方案.阅读并

SharePoint 2013自定义Providers在基于表单的身份验证中的应用

由于项目的需要,登录SharePoint Application的用户将从一个统一平台中获取,而不是从Domain中获取,所以需要对SharePoint Application的身份验证(Claims Authentication Types)进行更改,即采用更加灵活的混合模式登录:Windows Authentication和Forms Based Authentication.故本篇博客将着重笔墨去介绍SharePoint 2013自定义Providers在基于表单的身份验(Forms-Ba

SharePoint 2010的文档评分功能

如果大家使用SharePoint来构建文档管理解决方案,给文档评分其实是一个挺常见的需求.可惜在之前的版本中,SharePoint并没有内置这个功能,当然,也不断的有社区项目,通过自定义开发的方式,给SharePoint文档库添加上这个功能.SharePoint 2010终于给文档库(实际上是所有列表),都加上了给文档(和列表项)评分的功能. 在文档库设置中,打开"等级设置"页面,然后在页面中启用等级评定. 然后文档库中会增加两个网站栏,"等级(0-5)"和&quo

怎样为SharePoint 2010创建Application Page

如果不了解什么是Application Page,可以参考我以前写过的这篇文章.SharePoint 2010的页面模型没有太多的变化,基本和2007保持一致.对于开发人员而言,为SharePoint 2010创建一个Application Page,相比2007倒是方便了很多,因为Visual Studio 2010提供了很好的工具支持. 如下图所示,开发人员可以直接在一个SharePoint项目中添加一个Application Page: 在SharePoint 2010中,自定义Appli

简述SharePoint 2010中的沙盒解决方案

当程序员使用Visual Studio 2010为SharePoint 2010创建应用程序时,可以创建两种类型的解决方案,服务器场解决方案和沙盒解决方案.比如,打开Visual Studio 2010,新建一个空白SharePoint项目,你看到的第一个界面就是如下这个对话框. 服务器场解决方案(或简称为场解决方案)和SharePoint 2007一样,是一种被完全信任的解决方案.场解决方案可以包含能放到解决方案包里面的所有SharePoint组件和元素,比如应用程序页.可视化Web部件等等.