iis承载 wcf 工作流服务,客户端无法生成调用代理类

来源:互联网 发布:js点击显示更多内容 编辑:程序博客网 时间:2024/05/17 22:26

环境:vs2012、iis7

 

项目类型:wcf 工作流服务

 

项目内容:wf4.5 状态机。

 

现象:

完成 xamlx 文件后放 iis 里,浏览器可以访问此文件。然后做一个客户端,选 添加服务引用 来生成代理类。结果在对话框消失后没有生成代理类,客户端项目的配置文件中没有添加 web service 配置。

这时打开 windows 事件,发现下面信息:

WebHost 无法处理请求。
 发件人信息: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/62476613
 异常: System.Web.HttpException (0x80004005): 服务“/x/s/s1.xamlx/_vti_bin/ListData.svc”不存在。 ---> System.ServiceModel.EndpointNotFoundException: 服务“/x/s/s1.xamlx/_vti_bin/ListData.svc”不存在

 

没有对 xamlx 文件所在的 web.config 进行过手工改动。

 

原因:

xamlx 文件本身。

状态机中,有个 状态点 没有在  entry 里配置 Receive,就是说,不会在这个状态上进入 idel。把这个节点删除,客户端 更新引用, 代理类生成了。

 

分析:

没有状态机的时候用 pick 来挂起,pick 如果没有 receive 这类动作就提示错误,因此没有注意过这样的问题。状态机不提示出错,但还是会产生一个调用,这个调用的 终结点 配置是由 receive 完成,没有这类动作,就没有终结点。

对 wcf 机制不清楚,也没仔细查看状态机文档,就上手了,这只是直觉分析。

原创粉丝点击