欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WCF 之部署(2010版本之上)

程序员文章站 2022-04-06 10:51:05
首先,在WIN系统下打开IIS,每种操作系统是不同的,请不要弄混。 1、控制面板 左下放的程序 启用或关闭Windows功能,如图: 2、找到Internet Information Services,其中FTP服务器,WEB管理工具下面的所有文件夹及其子文件夹全选,令万维网服务中的安全性、常见HT ......

首先,在WIN系统下打开IIS,每种操作系统是不同的,请不要弄混。

1、控制面板---左下放的程序---启用或关闭Windows功能,如图:

 

WCF 之部署(2010版本之上)

2、找到Internet Information Services,其中FTP服务器,WEB管理工具下面的所有文件夹及其子文件夹全选,令万维网服务中的安全性、常见HTTP功能、性能功能全选。如下图:

WCF 之部署(2010版本之上)

还有,应用程序开发功能勾选状态如图:

WCF 之部署(2010版本之上)

运行状况诊断下全不勾选。

另外,Win8与Win7不同之处在于此,即,在启用或关闭Windows功能界面的顶端,有.NET Framework4.5高级服务,其勾选状态应该如下图:

WCF 之部署(2010版本之上)

至此,系统所需要的IIS环境应该已经具备

一、用VS2013启动IIS EXPRESS

 选中项目,不是选中某个文件,然后附加到浏览其运行(单击平时调试普通程序的那个绿色三角)

WCF 之部署(2010版本之上)

浏览器会有如下界面:

WCF 之部署(2010版本之上)

单击中部位置的Service.svc.cs,浏览器呈现如下界面:

WCF 之部署(2010版本之上)

代表VS已经替你开了一个服务,并且告诉了你如何在客户端调用。到时候的地址就是我红线中标识出来的那个蓝色连接。到时候在客户端程序中添加进去就可以了。

二、部署至本地IIS

用管理员身份打开VS2013

然后右键工程名字,选择属性,弹出对话框,在左侧选择web选项卡,然后在画红框处的组合框中选择部署到本地IIS,如图:

WCF 之部署(2010版本之上)

记住项目URL。

然后单击左侧的打包/发布网页选项卡,在“要部署的项目适用于所有部署方法”中选择“仅限运行此应用程序所需的文件”,如图:

WCF 之部署(2010版本之上)

然后按F5,就部署到本地IIS了,把上上图那个URL复制到浏览器,就是见证奇迹的时刻了。

三、部署至远程服务器

环境:本地:VS2013+WIN8.1(操作系统无关系的)

远程:windows server2012(安装好IIS)

1、本地操作:


右键单击工程,单击发布,在弹出的窗口中,单击(默认)左侧的配置文件,单击自定义,然后把项目中的配置文件的名字输进去,如图:

WCF 之部署(2010版本之上)

然后选择左侧连接,发布方法选择文件系统,目标位置选择你喜欢的本地文件夹,到时候会发布在该文件夹下,如图:

WCF 之部署(2010版本之上)

然后单击左侧设置,选择Relase,如图:

WCF 之部署(2010版本之上)

然后单击预览,基本没什么操作,单击发布,如图:

WCF 之部署(2010版本之上)

如此,在刚才选的文件夹下面就发现了以下几个东西:

我的是D:\Secpayment

WCF 之部署(2010版本之上)

将含有这三个宝贝的文件夹拷贝到远程服务器上,我暂且放在了C盘。如此,本地操作完。

2、服务器操作:

在服务器中打开web publish service 服务,怎么打开就不演示了,我也忘了。。。看官你查查怎么打开服务就行了。

然后打开IIS管理器,单击左侧的应用程序池,点击后后,右侧有个设置应用程序池默认设置,点开,然后设置为v4.0,如图:

WCF 之部署(2010版本之上)

接着,右键单击左侧的“网站”,点击添加网站,弹出如下窗口:

WCF 之部署(2010版本之上)

网站名称就是将要在左侧显示的,物理路径就是你拷贝到服务器的那个文件夹。IP请选择你远程访问服务器的那个IP,端口的话,你的80不能用就换8080.

注意:要单击测试设置,可能会出现如下提示:

WCF 之部署(2010版本之上)

 

为了验证授权,关掉这个窗口,在上上图中,单击连接为,在弹出的窗口里选择特定用户,单击设置。输入你登录服务器的账号密码即可:

之后验证如图:

WCF 之部署(2010版本之上)

然后关闭这个,就可以发布了。但是当浏览网站时发现,说禁用元数据发布了。那我们看一下配置文件:

WCF 之部署(2010版本之上)

第一个红线出,


serviceMetadata httpGetEnabled="true" 设置为true,而后面https的那个一定要设置为false,因为~~服务器不支持。

保存。然后在IIS管理器中,右键单击刚才的网站,管理网站--浏览,OK了。

WCF 之部署(2010版本之上)

注意:

IIS 7访问的时候出现以下异常:

不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny")......

 

解决方案:

 

因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。

运行命令行 

C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 
其中的 handlers 是错误信息中红字显示的节点名称。
如果modules也被锁定,可以运行

C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/modules


注意:cmd.exe要以管理员身份启动,在c:\windows\system32下找到cmd.exe,右键管理员启动,输入上面的命令即可。