WCF IIS部署

创建WCFHost应用程序

Iservice.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.ServiceModel;
 6 using System.ServiceModel.Description;
 7 using System.Drawing;
 8 namespace WCFHost
 9 {
10
11
12
13      [ServiceContract]
14     interface IService
15     {
16
17          [OperationContract]
18          float Verify(byte[] img1, string id);
19
20     }
21 }

Program.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace WCFHost
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             WcfHostor.StartService();
14             Console.WriteLine("Start Sever Success!");
15             Console.Read();
16
17         }
18     }
19 }

Service.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Drawing;
 6 using System.IO;
 7 using FRS;
 8 namespace WCFHost
 9 {
10     public  class Service:IService
11     {
12         FeatureData fa = new FeatureData();
13        // public static FeatureData FD{get;set;}
14
15         static void InitFRS()
16         {
17             //System.Console.WriteLine(System.Environment.CurrentDirectory);
18             FRSParam param = new FRSParam();
19
20             param.nMinFaceSize = 50;
21             param.nRollAngle = 10;
22             param.bOnlyDetect = true;
23
24             FaceImage.Create(1, param);
25             Feature.Init(1);
26         }
27
28         static Service()
29         {
30             InitFRS();
31         }
32
33         public float Verify(byte[] img1, string id)
34         {
35             try
36             {
37                 Image img = FRS.Util.ImageHelper.BytesToImage(img1);
38                 List<HitAlert> res = fa.Search(img, id).ToList();
39                 if (res.Count == 0)
40                     return 0;
41                 else
42                     return res[0].Details[0].Score;
43
44             }
45             catch
46             {
47                 return -1;
48             }
49
50         }
51     }
52 }

WcfHosts

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.ServiceModel;
 6 using System.ServiceModel.Description;
 7 using System.Xml;
 8 using System.Runtime.Serialization;
 9 namespace WCFHost
10 {
11     class WcfHostor
12     {
13         static Uri baseAddress = new Uri("http://localhost:8099/Service");
14         static ServiceHost host;
15         public static void StartService()
16         {
17
18             host = new ServiceHost(typeof(Service), baseAddress);
19             BasicHttpBinding binding = new BasicHttpBinding();
20
21             binding.MaxBufferSize = 2147483647;
22             binding.MaxReceivedMessageSize = 2147483647;
23             binding.TransferMode = TransferMode.Streamed;
24             binding.SendTimeout = new TimeSpan(0, 0, 10);
25
26
27             // Enable metadata publishing.
28             ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
29
30
31             smb.HttpGetEnabled = true;
32             smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
33             host.Description.Behaviors.Add(smb);
34
35             binding.ReaderQuotas.MaxDepth=32;
36             binding.ReaderQuotas.MaxArrayLength=2147483647;
37             binding.ReaderQuotas.MaxBytesPerRead=2147483647;
38              binding.ReaderQuotas.MaxNameTableCharCount=2147483647;
39             host.AddServiceEndpoint(typeof(IService), binding, baseAddress);
40
41             host.Open();
42
43             //// Create the ServiceHost.
44             //host = new ServiceHost(typeof(Service), baseAddress);
45
46             //// Enable metadata publishing.
47             //ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
48
49             //smb.HttpsGetBinding
50             //smb.HttpGetEnabled = true;
51             //smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
52             //host.Description.Behaviors.Add(smb);
53
54             //// Open the ServiceHost to start listening for messages. Since
55             //// no endpoints are explicitly configured, the runtime will create
56             //// one endpoint per base address for each service contract implemented
57             //// by the service.
58             //host.Open();
59         }
60         public static void EndService()
61         {
62             if (host != null)
63             {
64                 host.Close();
65             }
66         }
67     }
68 }

至此,服务搭建完毕。

服务测试,建立C#应用程序

Reference->Add Service Reference

Address为上文 "http://localhost:8099/Service"

添加服务引用完毕。

时间: 2024-10-12 21:26:29

WCF IIS部署的相关文章

WCF IIS 部署错误处理

做Web接口,原来一直用Web Service的,但是.Net 3.5后,Web Service变成了WCF.代码的编写上,把WebMethod特性改成了OperationContract,然后把方法分拆到契约接口和实现方法.然后在部署上,不再依赖于IIS,但如果使用IIS,部署反倒麻烦了. 将WCF应用程序代码拷贝到IIS目录下,然后打开IIS管理器,将其转换为Application.访问时出现了错误.protocolMapping配置节有问题. 原因在于,WCF是.Net3.5?的东西,我创

IIS部署WCF

IIS部署WCF [转载自——http://www.cnblogs.com/starksoft/p/4992059.html] 1 部署IIS 1.1 安装WAS IIS原本是不支持非HTTP协议的服务,为了让IIS支持net.tcp,必须先安装WAS(Windows Process Activation Service),即windows进程激活服务. 打开控制面板--程序和功能--打开或关闭windows功能,安装WAS,如图: 安装完毕后在Services窗口中可以到到如下服务:Windo

WCF服务部署IIS

一.将WCF服务部署到IIS上  [转载自简单笑容——http://www.cnblogs.com/skdsxx/p/5072726.html ] 1.首先检测电脑上是否安装了IIS,一般来说Win7以上系统自带IIS 2.下面进行IIS服务的开启设置 控制面板=>打开或关闭Windos功能 3.勾选该窗口中的Internet信息服务和Microsoft.NET Framework3.5.1标签,如下图所示 4.点击确定 5.右键桌面图标“计算机”=>管理=>服务和应用程序=>In

WCF服务部署到IIS7.5

下面介绍如何把WCF服务部署到IIS: 为WCF服务创建.svc文件 我们知道,每一个ASP.NET Web服务都具有一个.asmx文本文件,客户端通过访问.asmx文件实现对相应Web服务的调用.与之类似,每个WCF服务也具有一个对应的文本文 件,其文件扩展名为.svc.基于IIS的服务寄宿要求相应的WCF服务具有相应的.svc文件,.svc文件部署于IIS站点中,对WCF服务的调用体 现在对.svc文件的访问上. .svc文件的内容很简单,仅仅包含一个ServiceHost指令(Direct

WCF初次部署问题集锦

为什么这么久才更新呢?不是说好一周一篇吗?...............好吧,我不知道说什么...... 这次还是按照问答的方式来展现,最后附上一个通用简单的配置文件 问题:HTTP 错误 500.19 - Internal Server Error,无法读取配置节"protocolMapping",因为它缺少节声明.解决:Web.config文件中有protocolMapping节点, 发现在IIS部署时使用了.NET 2.0的应用程序池. 将其改为使用.NET 4.0的AppPoo

WCF学习之旅—WCF服务部署到IIS7.5(九)

四.WCF服务部署到IIS7.5 我们把WCF寄宿在IIS之上,在IIS中宿主一个服务的主要优点是在发生客户端请求时宿主进程会被自动启动,并且你可以依靠IIS来管理宿主进程的生命周期.在开发和使用的过程与Web Service非常相似. 1) 为WCF服务创建.svc文件 对于ASP.NET Web Service的每个服务都具有一个.asmx文件,客户端通过访问.asmx文件实现对相应Web Service的调用.WCF服务与Web Service类似,每个WCF服务也具有一个对应的文 件,其

ArcGIS for JavaScript 3.9 本机IIS部署

arcgis 官方网站经常会打不开,天朝人民都懂得!因为将arcgis for javascript 配置到本机访问 首先esri中国下载最新版3.9的API: http://support.esrichina-bj.cn/2011/0223/960.html 下载到本机后 将压缩包解压 复制这个arcgis_js_v39_api/arcgis_js_api到iis的根目录(当然你可以复制到你的项目所在的目录下). 即:C:\Inetpub\wwwroot\目录下 172.16.5.238 为我

SqlServer SSAS IIS 部署

参考MSDN官网:http://technet.microsoft.com/zh-cn/library/gg492140.aspx 注意事项: 网络上有文章说,最后验证是否成功 是在浏览器中输入url地址,有XML结果返回.此说法错误.坑苦了我.如:Win7下IIS 7.5配置SSAS(2008)远程访问. 正确验证方法: 程序中连接字符串,Data Source=http://192.168.1.172:9999/msmdpump.dll; Initial Catalog=AdventureW

Asp.net vnext的IIS部署

微软前段时间推出asp.net vnext,自个也尝试了一把,也写了几篇关于vnext特性的博客,如下. 但一直有个困扰的问题,asp.net vnext如何在iis部署,因为整个目录结构跟之前有了很大的不同,用f5直接运行启动iis express很方便查看结果,但如果部署到线上,就要用到iis,之前一直没找到合适的方案,很是郁闷,终于在昨天搞到深夜将这个问题解决了,那本文就是讲解如何通过vs2015部署vnext web项目. 大致的方案是通过http://codedbeard.com/as