设为首页 收藏本站
查看: 1444|回复: 0

[经验分享] SharePoint(WSS)学习(7) WSS中使用Web Service

[复制链接]

尚未签到

发表于 2015-9-28 08:37:20 | 显示全部楼层 |阅读模式
由于需要在WSS中使用Web Service,经过摸索,终于找到比较合适的方法来开发部署Web Service。
1.建立Asmx新建SharePoint Empty项目,添加Module,添加ASMX文件,编写ASMX后台代码。
如:TestAsmx.asmx

<%@ WebService Language="C#" Class="WebPartWithAscx.TestAsmx,SampleAsmx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5" %>
TestAsmx.asmx.cs:

using System.Web.Services;
namespace WebPartWithAscx
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    public class TestAsmx : System.Web.Services.WebService
    {
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    }
}
然后修改设置Module.xml,关键是设置URL:

<?xml version="1.0" encoding="utf-8"?>
<Elements Id="a7d06f55-3330-46cb-9c87-8c9481fc0047" xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="SampleAsmx" Url="UserWebServices">
    <File Path="TestAsmx.asmx" Url="TestAsmx.asmx" />
  </Module>
</Elements>
编译部署,发现部署失败,信息为:The file you are attempting to save or retrieve has been blocked from this Web site by the server administrators.
原因是asmx文件类型被禁止。
打开Central Administration -> Operations -> Blocked file types,把列表中的asmx文件类型删掉,保存。可正常部署运行asmx,用wsdl命令行生成该asmx的代理类。加到该Module中(注意:WebService定义和代理类通常情况下是分离的,在这里为演示,将他们放到一起;WebService 代理类的URL应该能够配置,可写在Web.config中,本文从略。),注意设置命名空间,不要与asmx定义冲突,编译部署。
2.测试Asmx。
在解决方案中添加WebPart项目。
编写调用WebService的代码,部署运行WebPart,发现出现错误:wss The request failed with HTTP status 401: Unauthorized.
原因是没有权限访问该WebService,为WebService添加当前的Credentials:
asmx.Credentials = System.Net.CredentialCache.DefaultCredentials;
再次部署能够正确运行,TestSampleAsmx.cs最终代码为:

using System;
using System.Runtime.InteropServices;
using System.Web.UI.WebControls;

namespace TestSampleAsmx
{
    [Guid("a9a79045-ee68-45de-ab33-174fa175f9c9")]
    public class TestSampleAsmx : System.Web.UI.WebControls.WebParts.WebPart
    {
        Label lbl = null;
        Button btn = null;
        public TestSampleAsmx()
        {
        }
        protected override void CreateChildControls()
        {
            btn = new Button();
            btn.Text = "Call Web Service";
            btn.Click += new EventHandler(btn_Click);
            lbl = new Label();
            this.Controls.Add(btn);
            this.Controls.Add(lbl);
        }
        void btn_Click(object sender, EventArgs e)
        {
            try
            {
                Xianfen.Net.Asmx.TestAsmx asmx = new Xianfen.Net.Asmx.TestAsmx();
                asmx.Credentials = System.Net.CredentialCache.DefaultCredentials;
                lbl.Text = asmx.HelloWorld();
            }
            catch (Exception ex)
            {
                lbl.Text = ex.Message;
            }
        }
    }
}
最终项目视图为:



添加WebPart,运行后如图:

示例下载:点击下载
飘遥的Blog:http://www.cnblogs.com/zxjay/
作者:飘遥(周振兴)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-119700-1-1.html 上篇帖子: Sharepoint学习笔记—Debug&TroubleShooting--Developer Dashboard的使用(3.向Assert and Criti 下篇帖子: 一个介绍和体验SharePoint 2010新功能“Faceted Search”的网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表