本文主要是介绍在IIS中承载WCF服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
http://blog.csdn.net/lilypp/article/details/7652496
MSDN 原文:
承载服务:http://msdn.microsoft.com/zh-cn/library/ms730158
托管应用程序中的自承载(如上一篇WCF入门中演示的那样);托管Windows服务(用Installutil.exe 安装);IIS(本文);WAS(Windows进程激活服务)
如何:在IIS中承载WCF服务 http://msdn.microsoft.com/zh-cn/library/ms733766
本文基本上是摘抄上文“如何:在IIS中承载WCF服务”,对配置文件修改了一点,原文的会出错。
1. 创建 IISHostedCalcService 文件夹;在IIS中创建应用,指向此目录,别名为:IISHostedCalc。
2. 在IISHostedCalcService下创建 service.svc文件(WCF服务文件),内容:
.svc文件包含WCF特定的处理指令@ServiceHost,该指令允许WCF承载基础机构激活所承载的服务,以相应传入消息。
3. 在 IISHostedCalcService 下创建App_Code子目录,创建Service.cs文件,内容:
对App_Code目录中文件进行的任何更改都会导致在收到下一个请求时回收和重新编译整个应用程序。
实现代码也可以按内联方式位于.svc文件中,@ServiceHost指令之后。
4. 在IISHostedCalcService下创建 Web.config,内容:(与MSDN原文相比,多了<behaviors>,否则在IE中会出现:Metadata publishing for this service is currently disabled.)
5. 在IE中输入:http://localhost/IISHostedCalc/Service.svc
关于如何创建访问服务的客户端,参加上一篇《WCF入门》。
============================================================================
在IIS上承载WCF方式二
在IIS目录下创建Service.svc 文件和Web.config文件即可:
Service.svc内容:
<%@ ServiceHost language="c#" Debug="true" Service="WcfServiceLibrary8.Service1" %>
using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.Text;
namespace WcfServiceLibrary8
{
[ServiceContract]
public interface IService1
{
[OperationContract]
double Add(double n1, double n2);
}
class Service1 : IService1
{
public double Add(double n1, double n2)
{
return n1 + n2;
}
}
}
Web.config内容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- 部署服务库项目时,必须将配置文件的内容添加到
主机的 app.config 文件中。System.Configuration 不支持库的配置文件。 -->
<system.serviceModel>
<services>
<service name="WcfServiceLibrary8.Service1" behaviorConfiguration="serviceBehavior1">
<endpoint address="" binding="basicHttpBinding" contract="WcfServiceLibrary8.IService1">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="serviceBehavior1">
<!-- 为避免泄漏元数据信息,
请在部署前将以下值设置为 false -->
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
<!-- 要接收故障异常详细信息以进行调试,
请将以下值设置为 true。在部署前设置为 false
以避免泄漏异常信息 -->
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
===============================================================================
除了使用《添加服务引用》的方式生产客户端代理,还可以使用cmd的方式:
参数:/out:表示输出到哪个路径下。/config:表示配置文件输出到哪个路径下 。后面的net.tcp://。。。。表示公布的元数据终结点的服务端地址
这篇关于在IIS中承载WCF服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!