1. WCF服务应用程序已创建并部署在IIS上
2. WCF客户端网站已创建、添加WCF服务引用、实现调用WCF服务程序中的方法、调试程序、实现输出效果
3. 上面两步骤可参考以下网址:
http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html
4. 再完成上述操作之后、发布WCF客户端到IIS服务器、以供他人在浏览器中可以访问、发布方法可参考如下、根据环境选择对应的发布方法
http://blog.csdn.net/sat472291519/article/details/12153917(这里选择的是.net framework4 classic)
5. 客户端发布完之后在浏览器中浏览可能会出错、出错原因会在浏览器中显示并提供了解决办法、如下图所示
6. 出现此原因是因为在客户端网站中没有Index、Default之类的首面,添加到IIS服务器的网站在浏览器中浏览时会默认显示Index等之类的首页,而此时我的客户端只有一个名为WcfTest.aspx的页面,所以在浏览器显示时会出现上述错误,若启用网站【功能视图】中的【目录浏览】,则在浏览器中会出现bin、WcfTest.aspx、Web.config等目录,选中点击即可进入,若想在浏览器打开时就显示WcfTest.aspx页面,则可以将此页面设置为默认首页,选中网站,双击【默认文档】,在右侧单击【添加】,输入要设置为首页的页面名称,此处为WcfTest.aspx,设置首页成功
7. 当进入首页时还可能会出现如下错误:
8. 此处解决办法是修改.NET Framework版本为相应版本即可,IIS默认版本是2.0,需手动改成4.0,具体操作方法如下链接:
http://blog.csdn.net/muchlin/article/details/6800863
9. 设置完毕,重启网站即可浏览
10. 上面这几个步骤的客户端是web页面,下面再给出一段winform中调用WCF的代码
先随便建立一个winform项目,然后给出一个button,在点击事件中使用服务即可(WCF端的代码未给出,可自行参考上面步骤,我下面的例子WCF端其实就是利用客户端传过来的参数作为查询条件去后台数据库拿到对应的记录的数据)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using winformUseWCFTest.ServiceReference1;
namespace winformUseWCFTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
UserClient client = new UserClient();
// 使用 "client" 变量在服务上调用操作。
string result = client.ShowName("安全阀类型");
MessageBox.Show(result);
// 始终关闭客户端。
client.Close();
}
}
}
我在配置服务器的时候出现了几个错误:
svc 报“由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME
原因:系统没有默认为IIS注册WCF服务的svc文件的MIME映射。
解决方法:管理员身份运行C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i
错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。