WCF,请教一个问题

WPF20 2014-01-02 06:56:55

一个解决方案中,包括一个WCF服务库和一个WPF项目,WPF添加了WCF服务,并作为启动项目,点击窗体中的一个按钮,在里面调用WCF服务,最后调用成功。

我想问的是,不是说的WCF服务需要寄宿在一个进程中,才能生效的吗?这个示例中,哪里有寄宿啊?客户端不就是那个WPF项目吗?

...全文
272 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
魂之挽歌来袭 2014-01-04
  • 打赏
  • 举报
回复
引用 11 楼 u013361180 的回复:
[quote=引用 9 楼 osnot 的回复:] 希望帮到你。
那如果今后我有WCF服务放在远程服务器上的,是不是必定得写个寄宿程序呢?这个寄宿程序是放在哪里的呢?[/quote] 一般来说对外提供的WCF服务都是已经寄宿好了的 否则你没办法调用的
qldsrx 2014-01-03
  • 打赏
  • 举报
回复
添加WCF类库时,vs自动绑定内置宿主进程启动的,你点击鼠标右键查看该类库属性即可发现,它和一般类库不一样,带自启动功能的,由vs提供支持。
  • 打赏
  • 举报
回复
引用 11 楼 u013361180 的回复:
[quote=引用 9 楼 osnot 的回复:] 希望帮到你。
那如果今后我有WCF服务放在远程服务器上的,是不是必定得写个寄宿程序呢?这个寄宿程序是放在哪里的呢?[/quote] 使用asp.net来部署,或者window server部署(控制台程序部署,等等),这些都是部署。就好像你写一个类库来计算四则计算,然后把这个类库部署在不同程序上。实际上,都可以部署wcf。 不过话说回来,我更愿意自己写一个最简单最轻量的http消息服务功能,使用 json 方式,服务于所有web请求。而不是什么wcf。
  • 打赏
  • 举报
回复
引用 5 楼 u013361180 的回复:
就是对WPF项目添加服务引用啊,如下这样的,点击"发现"按钮:
那么你就知道wcf寄宿在哪里了吧?!
ByronGeek 2014-01-03
  • 打赏
  • 举报
回复
那你启动的那个WCF程序就是host服务的操作了啊。
WPF20 2014-01-03
  • 打赏
  • 举报
回复
引用 16 楼 Dante_Alighieri 的回复:
对哪个project F5?从你意思看,应该是还有其他project的,但是从最开始的整个solution的截图看,没看到其他的project,关键就是看你之前F5的那个project
最开始的时候只有WCF,对WCF服务按F5
ByronGeek 2014-01-03
  • 打赏
  • 举报
回复
对哪个project F5?从你意思看,应该是还有其他project的,但是从最开始的整个solution的截图看,没看到其他的project,关键就是看你之前F5的那个project
  • 打赏
  • 举报
回复
可以自我寄宿和寄宿IIS中,但是楼主,你既然要用wcf为什么就不好好查资呢,这属于设计范畴了。
WPF20 2014-01-03
  • 打赏
  • 举报
回复
引用 13 楼 Dante_Alighieri 的回复:
既然你在添加服务引用的时候,能够正常显示服务,那就表示你的服务已经在这之前host起来的。这个跟你的WPF程序启动不启动没有关系。关键是不知道在添加服务引用之前你是如何操作的,IIS寄宿或者你有单独的进程host服务,但是你没注意。
我在WPF添加服务引用之前(也就是创建WPF项目之前),按F5进行了WCF测试客户端
ByronGeek 2014-01-03
  • 打赏
  • 举报
回复
既然你在添加服务引用的时候,能够正常显示服务,那就表示你的服务已经在这之前host起来的。这个跟你的WPF程序启动不启动没有关系。关键是不知道在添加服务引用之前你是如何操作的,IIS寄宿或者你有单独的进程host服务,但是你没注意。
WPF20 2014-01-03
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
不知道你怎样添加的。

就是对WPF项目添加服务引用啊,如下这样的,点击"发现"按钮:
WPF20 2014-01-03
  • 打赏
  • 举报
回复
引用 9 楼 osnot 的回复:
希望帮到你。
你说的这个情况是按F5启动WCF服务客户端测试的情况吧。我说的是,我已经将WPF1项目设为了启动项目之后,在WPF1项目中调用WCF服务,此时的寄宿程序在哪里呢?
WPF20 2014-01-03
  • 打赏
  • 举报
回复
引用 9 楼 osnot 的回复:
希望帮到你。
那如果今后我有WCF服务放在远程服务器上的,是不是必定得写个寄宿程序呢?这个寄宿程序是放在哪里的呢?
真爱无限 2014-01-03
  • 打赏
  • 举报
回复
你这个localhost 一串的路径,明显是把wcf的服务端 用网站服务器承载了呀,客户端 就像调用webservice一样的调用,这不是很清楚吗?
osnot 2014-01-03
  • 打赏
  • 举报
回复
引用 7 楼 u013361180 的回复:
[quote=引用 1 楼 osnot 的回复:]
wpf的进程就是它的寄宿进程。

WPF的进程就是寄宿进程?可是WPF是客户端程序啊,如果此时的WCF服务在远程服务器上,....有什么不一样吗?[/quote]
十分抱歉,是我自以为是了,我说错了,WCF的寄宿程序是visual studio自己启动的一个进程。
不知楼主是否如此操作的:
1、新建WCF服务库程序WcfServiceLibrary1;
2、然后点击F5(或者Debug),启动该程序,这是Visual Studio会有提示:


3、然后拷贝服务地址,然后像你所说那样添加引用。
这时你的WCF服务的寄宿进程就是随WCF测试客户端一起启动的,名为:WcfSvcHost.exe的进程。

即上图被红色圈住的进程,下面那个就是WCF测试客户端的进程了。
所以WCF服务一定需要寄宿在某个进程上,而你启动WCF服务程序的时候,Visual Studio会自动给你创建一个这样的服务。
希望帮到你。
horris 2014-01-03
  • 打赏
  • 举报
回复
从你引用的图来看,宿主是VS提供的,好象叫WcfHost.exe吧,确切名称自己查一下吧。 这个宿主应该是在调试时,由VS自动启动的。 所以在正式发布时,需要你自己为service指定一个宿主。
WPF20 2014-01-03
  • 打赏
  • 举报
回复
引用 1 楼 osnot 的回复:
wpf的进程就是它的寄宿进程。
WPF的进程就是寄宿进程?可是WPF是客户端程序啊,如果此时的WCF服务在远程服务器上,....有什么不一样吗?
WPF20 2014-01-03
  • 打赏
  • 举报
回复
有人知道么?
  • 打赏
  • 举报
回复
不知道你怎样添加的。
WPF20 2014-01-02
  • 打赏
  • 举报
回复
为什么没有终结点定义、配置这些东西?
加载更多回复(2)

110,561

社区成员

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

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

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