如何将WCF部署到远程部署服务器服务器

72807人阅读
&&&WebService,即Web服务,能使得运行在不同机器上的不同应用无须借助,专门的第三方软件或硬件,就可相互交换数据或集成.
&&&第一次选择WebService,是为了替代数据库远程连接.我们都知道当SQL允许远程时,则要打开某一端口.但这一点在我们已经部署好的服务器上,却是不被允许的,于是就选择WebService来代替了.当然现在我们也可以选择WCF来完成.不过这不是我们今天的主题.
&& WebService返回的数据为XML,这是我们都很熟悉的一种数据方式,大大方便了我们的工作当然,WebService给我们带来的好处远不止这些.我不想讲得更多.相信当你能够熟练运用WebService后,你会发现这是一把锋利的宝刃.
&& 对于初次接触WebServcie的人来说,长篇理论,不如一个实例来得更实际些,我们更看重的是到底如何能够创建一个WebService并且将其部署,和使用.
&&&下面我将逐步的完成一个加减乘除功能的WebServic.
&&&开发环境:VS2012
&&&IIS环境:WINSERVER2008R2 IIS7.5
&& 第一步:打开VS2012,新建空项目,注意选择.NET Framework的版本.这里我选择的是.NET Framework 4
&&新建好项目后,在项目中添加一个WebService项
打开这个文件,我们可以看到,代码如下
using System.Collections.G
using System.L
using System.W
using System.Web.S
namespace CalculateService
/// &summary&
/// WebService1 的摘要说明
/// &/summary&
[WebService(Namespace = &http://tempuri.org/&)]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
// [System.Web.Script.Services.ScriptService]
public class CalCulService : System.Web.Services.WebService
[WebMethod]
public string HelloWorld()
return &Hello World&;
将HellowWorld这段代码删除,修改后如下
using System.Collections.G
using System.L
using System.W
using System.Web.S
namespace CalculateService
/// &summary&
/// CalCulService 的摘要说明
/// &/summary&
[WebService(Namespace = &&)]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
// [System.Web.Script.Services.ScriptService]
public class CalCulService : System.Web.Services.WebService
[WebMethod]
public int Sum(int a, int b)
return a +
[WebMethod]
public int Sub(int a, int b)
return a -
[WebMethod]
public double Mult(double a, double b)
return a *
[WebMethod]
public double Div(double a, double b)
return a /
此时,我们已经完成这个WebService的代码部分.接下来我们要将这个WebService打包发布
在项目上点击右键,点击菜单中的发布
&此时出现如下页面
点击下拉菜单选择新建配置文件
完成以上步骤后,我们可以在设置文件生成的文件夹内看到生成的以下文件
现在我们要将生成的文件拷贝到已经部署好的IIS服务器上:在服务器上新建文件夹,将文件拷贝至文件夹内,并且为文件夹设置匿名权限.
现在我们在IIS中添加网站
需要注意的是:我们的这个WebService是基于.NET 4开发的.如果你的IIS默认使用的是.NET 2.0,那么发布后将会出现异常,而无法访问.
查看一下应用程序池的右边的应用程序池默认设置
提供两种解决方案:第一种,在上面的表格中,将应用程序池默认改为4.0即可.当然这是指你的IIS中没有需要2.0的应用程序和网站.
如果你的IIS中还有其它的需要.NET 2.0的应用程序,这时候你可以选择第二个办法
首先添加一个应用程序池
然后添加网站,将网站的应用程序池改为新建的应用程序池
当然,我们也可以将这个项目的.NET版本改为3.5,然后重新打包发布.那么就不需要添加对4.0的支持了.
添加完毕,启动网站,此时可以关闭与服务器的连接了.
在本地的浏览器中输入地址
此时我们可以看到以下的界面
此时我们已经完成了这个WebService的创建和部署.接下来,我们要在本地使用它
打开VS2012,新建项目,项目名为TestCalCul
在项目中添加新建项
在项目中引用项上点击右键,选择添加服务引用,显示界面如下:
点击左下角的高级,出现界面如下
点击添加Web引用,出现界面如下
在URL中输入我们发布的WebService的URL地址,系统会自动搜索到服务.并且为Web引用设置一个引用名.此引用名将是我们在项目中引用这个服务的命名空间
点击添加引用,引用完成.
接下来,我们在WebForm1的cs文件中写如下代码
using System.Collections.G
using System.L
using System.W
using System.Web.UI;
using System.Web.UI.WebC
//不要忘记为WebService添加using引用
using TestCalCul.MyWebS
namespace TestCalCul
public partial class WebForm1 : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
CalCulService cal = new CalCulService();
double a = 29755;
double b = 112.58;
Response.Write(cal.Mult(a, b).ToString());
接下来,在浏览器中运行该项目.可以看到如下结果
此时我们已经完成了这个WebService的使用过程
其实,这个实例在开发中,没有任何意义.
但是通过这个实例,我们可以看出WebService的复用性,简单性是非常好的.
在VS的环境下,我们可以轻易完成一个WebService的开发过程.
而WebService返回给我们的XML数据方式,也可以充分的和JavaScript等任何一种可以处理XML的语言相结合来
完成我们的需求.
在这里要注意,当WebService连接数据库时,我们要适当的给WebService进行加密.
加密的方式很多,你可以通过在IIS服务器上禁止匿名访问来实现,也可以给WebService的验证增加验证内容,最
简单的就是加上用户名和密码.
还要注意,不要用有含义的方法名称,比如Login或者PayOrder等,回传数据不要使用bool值,尽量使用字符串来替
代,最好在字符串中加上干扰码等.
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:76843次
排名:千里之外
评论:26条WCF服务如何用VS2010远程部署到其他机器
[问题点数:20分,结帖人juscc]
WCF服务如何用VS2010远程部署到其他机器
[问题点数:20分,结帖人juscc]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
2016年9月 .NET技术大版内专家分月排行榜第二2016年6月 .NET技术大版内专家分月排行榜第二2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
2013年7月 MS-SQL Server大版内专家分月排行榜第一2009年3月 Oracle大版内专家分月排行榜第一2009年2月 Oracle大版内专家分月排行榜第一
2013年9月 MS-SQL Server大版内专家分月排行榜第二2013年8月 MS-SQL Server大版内专家分月排行榜第二2009年4月 Oracle大版内专家分月排行榜第二2009年1月 Oracle大版内专家分月排行榜第二2004年10月 MS-SQL Server大版内专家分月排行榜第二
2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
2016年9月 .NET技术大版内专家分月排行榜第二2016年6月 .NET技术大版内专家分月排行榜第二2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。如何登陆远程服务器数据库创建\修改\数据表?_百度知道3480人阅读
在远程调试wcf服务出现以下错误。”Unable to automatically stepinto the server. Connecting to the server machine ‘192.168.0.10’ failed.拒绝访问”
究其原因,远程服务器不能调试。
解决方案:
1、& 在本地创建一个和远程服务器相同的用户账户和密码,然后使用这个账户登录本机。(实际上我调试的时候是在服务器建立了一个和我当前账户相同的账户,正好相反,但是效果一样)
2、& 确定在远程服务器上RemoteDebugging Monitor (MSVSMON.EXE)服务已启动。如果远程服务器上没有该种服务,可以在你的vs2010安装盘中找到文件,从中选择一个和远程服务器操作系统版本对应的exe文件,在服务器运行。
3、& 接下来获取远程调试时服务器名称,该名称为:用户名@服务器名。获取的方式是在服务器|程序|...中获取
在我本机使用的是64位操作系统。
从上面的操作中,可以获取到远程调试时服务器路径是:Administrator@Server,注意这个Server是我的远程服务器的名称。
4、& 开始调试后,在要调用远程服务的代码运行前,选择附加到进程。
比如,现在暂时还不能进行单步调试,一旦单步调试,就会出现开始的错误,必须附加到进程
6、& 备注(第一步是否必要不肯定,因为我调试时的改了好多地方最后才成,所以不确定第1步是否必要。)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:42494次
排名:千里之外
原创:23篇
(13)(7)(4)(1)(1)(1)(1)}

我要回帖

更多关于 mvc调用wcf服务器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信