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

简介: 错误描述:Net 开发WebService调用Microsoft.SharePoint.dll的服务器端对象模型,出现找不到网站的应用程序,或者出现500错误。 错误截图: [Webservice调用页错误] System.IO.FileNotFoundException: 找不到位于 http://localhost 的 Web 应用程序。

错误描述: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/网站名称],然后可以调试了。

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

提权代码:

SPSecurity.RunWithElevatedPrivileges(delegate()
{

代码段….
});

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

参考网址: http://blog.csdn.net/yun_liang1028/article/details/6116146

目录
相关文章
|
6月前
|
C# 数据库 网络架构
技术经验分享:c#程序添加其他网站的webservice引用。
技术经验分享:c#程序添加其他网站的webservice引用。
59 0
|
XML Java 数据格式
java WebService CXF Spring 自定义拦截器 附实例源码
java WebService CXF Spring 自定义拦截器 附实例源码
187 0
java WebService CXF Spring 自定义拦截器 附实例源码
|
XML Java Apache
java WebService CXF Spring 自定义拦截器 附实例源码
java WebService CXF Spring 自定义拦截器 附实例源码
210 0
java WebService CXF Spring 自定义拦截器 附实例源码
|
XML Java 应用服务中间件
tomcat 用AXIS2发布WebService 网站的方法
Axis2+tomcat7.0 实现webService 服务端发布与客户端的调用。   Aixs2开发webService的方法有很多,在此只介绍一种比较简单的实现方法。 第一步:首先要下载开发所需要的jar包    下载: axis2-1.6.2-war.zip  http://www.apache.org/dist//axis/axis2/Java/core/1.6.2/  下载完后将axis2.war放至tomcat安装目录下的webapps文件夹下,然后启动tomcat后,在webapps目录下会生成axis2文件夹。
1493 0
|
数据安全/隐私保护 网络架构 数据格式
|
XML 数据格式 小程序
WebService中运用自定义类的处理要领(转)
http://hi.baidu.com/cjhong_520/item/d7d1d595e4c048d91b49dfa9 最近一个项目要用到webservice调用业务层类,刚开始的时候遇到了一点小麻烦,经过这两天的总结和实践,终于总结出多个比较多见的情况下的处理要领。
840 0
|
.NET 开发框架
SharePoint 列表项通过自定义WebService读取
简述:给其他系统提供集成,发现SharePoint自带的WebService各种不好使,索性就自己写一点,也当做自己学习的记录了。当然内容比较简单,希望大侠们不要介意,也不要骂我啊。好了,进入正题吧。 1、 首先,使用VS2008新建一个WebService的项目,选择Asp.
904 0