怎样上传WCF服务?

sdf4r4t 2015-10-01 09:20:23
我只会WebService服务,知道要在远程主机部署WebService服务,只需要用FTP工具上传bin文件夹、Web.config和WebService1.asmx文件到主机根目录,即可在客户端调用服务。
不过,对于WCF而言,下面是一个在本地做好的WCF服务:

请问:
1、使用FTP工具上传的时候,上传哪些文件到远程主机的根目录呢?
2、是不是和WebService一样,上传到主机根目录就行了呢,还需要手动运行Hosting.exe吗?怎么在远程主机运行呢?
...全文
139 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajianchina 2015-10-02
  • 打赏
  • 举报
回复
http://www.cnblogs.com/therock/articles/2275227.html 我找了一个,你看看。
sdf4r4t 2015-10-02
  • 打赏
  • 举报
回复
引用 6 楼 ajianchina 的回复:
无需传Hosting里面的文件,在解决方案中加一个wcf网站,按我在1楼说的大致步骤,最后在生成解决方案后,你只需将wcf网站项目下的一个svc文件,一个web.config文件跟bin文件包进行上传就好了。
1、如果是WCF4.0的话,不加svc文件,那上传的就只有web.config配置文件和bin文件夹吗? 2、另外,如果不添加svc文件,比如在浏览器中访问 http://localhost/HelloWCF/CalculatorService.svc 的时候,怎么能访问到呢?
ajianchina 2015-10-02
  • 打赏
  • 举报
回复
vs是有单独的“wcf网站”项目可供添加的,我现在手上没有vs,名称可能描述不十分准确,你可以添加这个项目,你上面的代码关于程序入口这些用不上,iis托管主要是配置web.config文件。如果存在数据库的话,在最终发布到iis的时候,数据库连接代码你需要从services项目中的app.config文件拷贝到web.config文件中,现在已经没有hosting项目的事情了。
sdf4r4t 2015-10-02
  • 打赏
  • 举报
回复
引用 9 楼 ajianchina 的回复:
wcf网站新建之后,要引用你现有项目里的service类库,这两步很简单就完成了,主要的工作是web.config文件的配置。
本地创建的WCF服务,在Hosting项目的控制台应用程序中,有下面一些代码:

namespace Hosting
{
    class Program
    {
        static void Main(string[] args)
        {            
            Uri baseAddress = new Uri("http://localhost:8000/MyService");//创建一个URI对象,用来保存服务的基址(监听地址)
            ServiceHost selfHost = new ServiceHost(typeof(MyService), baseAddress); //创建一个ServiceHost对象。
            try
            {               
                selfHost.AddServiceEndpoint(typeof(IService),new WSHttpBinding(),"MyService"); //将服务终结点添加到承载服务中  
                ServiceMetadataBehavior smb = new ServiceMetadataBehavior();//启用元数据交换
                smb.HttpGetEnabled = true;
                selfHost.Description.Behaviors.Add(smb); //添加服务描述           
                selfHost.Open();//⑤启动服务
                Console.WriteLine("服务已准备就绪");
                Console.WriteLine("按下回车键以终止服务");
                Console.WriteLine();
                Console.ReadLine();               
                selfHost.Close();//关闭ServiceHostBase以关闭服务
            }
            catch (CommunicationException ce)
            {
                Console.WriteLine("异常:{0}", ce.Message);
                selfHost.Abort();
            }
        }
    }
}
那现在不需要这个Hosting项目了,我添加了一个ASP.NET 空web应用程序,这样行吗。那上面这些代码又放在哪里呢?我没有做过网站,我是做C/S的。
ajianchina 2015-10-02
  • 打赏
  • 举报
回复
wcf网站新建之后,要引用你现有项目里的service类库,这两步很简单就完成了,主要的工作是web.config文件的配置。
  • 打赏
  • 举报
回复
如果你还是弄你那个空间去,那么你的hosting就不行了,因为这个要执行了才能进行host,你需要重新添加一个web程序,来添加你的wcf引用,这时候可以只添加一个svc文件,然后修改文件头默认的服务指向,这样你的svc就只是一个空载体,原来的服务直接可用,不需要再编码,当然我前面也说了,如果你的wcf是高版本的,那可以直接设置虚拟svc,上面说的这些你百度都能查到,最后你问得怎么启动问题,iis为宿主时,web启动wcf就启动了
  • 打赏
  • 举报
回复
如果你还是弄你那个空间去,那么你的hosting就不行了,因为这个要执行了才能进行host,你需要重新添加一个web程序,来添加你的wcf引用,这时候可以只添加一个svc文件,然后修改文件头默认的服务指向,这样你的svc就只是一个空载体,原来的服务直接可用,不需要再编码,当然我前面也说了,如果你的wcf是高版本的,那可以直接设置虚拟svc,上面说的这些你百度都能查到,最后你问得怎么启动问题,iis为宿主时,web启动wcf就启动了
ajianchina 2015-10-02
  • 打赏
  • 举报
回复
无需传Hosting里面的文件,在解决方案中加一个wcf网站,按我在1楼说的大致步骤,最后在生成解决方案后,你只需将wcf网站项目下的一个svc文件,一个web.config文件跟bin文件包进行上传就好了。
sdf4r4t 2015-10-02
  • 打赏
  • 举报
回复
引用 1 楼 ajianchina 的回复:
你现在是自托管方式,而你想要iis托管,需要调整一下,你解决方案里加一个WCF Service网站,删除自动生成的代码,添加上面的项目引用Service,并添加一个.svc文件,修改Web.config文件,如果你是WCF4.0的话,不加svc文件也可以,通过配置文件进行映射,关于web.config的设置方式你根据自己的绑定方式参考网上的例子,我手机打字不方便,关键就是服务契约,方法契约,数据库连接这些,本地测试没问题后也是通过FTP传到服务器,与你webservice差不多,基本上三个东西,一个svc文件,一个web.config配置文件,一个bin程序集文件包,差不多就这样,具体你可以到网上看看人家的例子。
但是在本地部署WCF服务的时候,需要手动运行Hosting项目的Hosting.exe文件,部署在远程IIS上,是否需要手动运行Hosting.exe呢?如何运行呢?
threenewbee 2015-10-01
  • 打赏
  • 举报
回复
直接复制到iis发布
  • 打赏
  • 举报
回复
对1楼进行补充,如果你是wcf 4以上,不需要有svc,web可以直接在配置里面声明,具体就是在system.serviceModel节点下面设置seeviceHostingEnvironment,这个节点没设置虚拟路径serviceActivations
  • 打赏
  • 举报
回复
对1楼进行补充,如果你是wcf 4以上,不需要有svc,web可以直接在配置里面声明,具体就是在system.serviceModel节点下面设置seeviceHostingEnvironment,这个节点没设置虚拟路径serviceActivations
ajianchina 2015-10-01
  • 打赏
  • 举报
回复
你现在是自托管方式,而你想要iis托管,需要调整一下,你解决方案里加一个WCF Service网站,删除自动生成的代码,添加上面的项目引用Service,并添加一个.svc文件,修改Web.config文件,如果你是WCF4.0的话,不加svc文件也可以,通过配置文件进行映射,关于web.config的设置方式你根据自己的绑定方式参考网上的例子,我手机打字不方便,关键就是服务契约,方法契约,数据库连接这些,本地测试没问题后也是通过FTP传到服务器,与你webservice差不多,基本上三个东西,一个svc文件,一个web.config配置文件,一个bin程序集文件包,差不多就这样,具体你可以到网上看看人家的例子。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧