ASP.NET + WCF 架构设计中的2个困惑问题,多谢!

gzl 2009-06-11 09:27:21
ASP.NET using WCF
client (http)=> asp.net(w3p) (wsHttpBinding)=> wcf(w3p)

wcf服务使用了wsHttpBinding 的 reliableSession,服务采用了presession的生命周期,因此在调用wcf服务的asp.net端,将服务的ClientBase(client proxy)和ChannelFactory都放入了HttpSessionState中,即相对每个asp.net session,wcf服务都只创建一次/个。

问题:
1. 在部署asp.net应用时,为了提高性能,将iis中将该asp.net应用的AppPool的Web garden配置为多个(w3p工作进程),同时也将该asp.net的sessionState配置成了StateServer(一般会使用inproc方式),在配置无误的情况下,发现asp.net应用中创建保存的wcf服务ClientBase(client proxy)和ChannelFactory不正常,是否这是由于wcf服务的ClientBase(client proxy)和ChannelFactory不能正确序列化存入StateServer有关系?如果想在这种场景中正确使用基于wsHttpBinding和reliableSession配置的presession生命周期的wcf服务,在asp.net和wcf两端的标准做法是什么?

2. 在上述的架构中,为了提高wcf服务的性能,在部署服务的iis中将其AppPool的Web garden配置为多个(w3p工作进程),此时发现由于每次asp.net调用wcf服务的请求不会固定在一个wcf服务的w3p工作进程上执行,造成asp.net应用session中保存的wcf服务ClientBase(client proxy)和ChannelFactory与wcf服务器端的session数据对应不上,造成随机依次报出如下异常:

The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.

The remote endpoint no longer recognizes this sequence. This is most likely due to an abort on the remote endpoint. The value of wsrm:Identifier is not a known Sequence identifier. The reliable session was faulted.

想确认这种情况是否是会话保持不正确造成的?将asp.net应用调用服务的请求保持在固定的wcf w3p工作进程的方法是什么?
...全文
1163 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
weike021996 2011-05-31
  • 打赏
  • 举报
回复
学习,看不明白
gzl 2011-05-30
  • 打赏
  • 举报
回复
up up
gzl 2011-05-20
  • 打赏
  • 举报
回复
upup
gzl 2011-05-16
  • 打赏
  • 举报
回复
高人求解
mail_ricklee 2011-02-14
  • 打赏
  • 举报
回复
采用Windows Server AppFabric作缓存服务器
guyehanxinlei 2010-11-01
  • 打赏
  • 举报
回复
可靠性会话需要使用的绑定支持,wsHttpBinding是满足条件的,但好像不能用于WEB的应用吧/

使用较多的是WebHttpBinding,不过不支持Session及可靠性会话
dna_xp 2010-10-22
  • 打赏
  • 举报
回复
wcf通道的最佳实践就是用好就关,感觉lz有点钻牛角尖了,感觉把简单的问题复杂化了。Pre call是最佳的作法,Pre session会牵涉到很多潜在的问题,比如事务处理啊,还有异常处理等。
dna_xp 2010-10-22
  • 打赏
  • 举报
回复
“将服务的ClientBase(client proxy)和ChannelFactory都放入了HttpSessionState中”这个有点过分了,万一通道出错了,你还要在对session作处理?
xinjiekou_8 2010-09-26
  • 打赏
  • 举报
回复
UP UP UP
antony1029 2010-01-07
  • 打赏
  • 举报
回复
UP
大宇_ 2010-01-06
  • 打赏
  • 举报
回复
参考这个看看有没有帮助
http://msdn.microsoft.com/zh-cn/library/aa738742.aspx
大宇_ 2010-01-06
  • 打赏
  • 举报
回复
1.避免使用 ASP.NET 2.0 配置文件,因为在将服务迁移到 WCF 时使用它们将限制对 ASP.NET 集成模式的使用
具体怎么作没有尝试过。
tan124 2010-01-04
  • 打赏
  • 举报
回复
是正确的
  • 打赏
  • 举报
回复
到真正的时候就没影了,呵呵
24K純帥 2009-10-14
  • 打赏
  • 举报
回复
up..
gzl 2009-10-13
  • 打赏
  • 举报
回复
MVP哪里去了?
yanping036519 2009-10-13
  • 打赏
  • 举报
回复
hhee ahh哈哈和 哈哈 呵呵
douya4520 2009-10-13
  • 打赏
  • 举报
回复
gzl 2009-07-20
  • 打赏
  • 举报
回复
up
加载更多回复(4)

12,166

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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