将服务器变量,Cookie信息和QueryStrings传递给WCF

时间:2012-08-09 15:11:07

标签: .net ajax wcf web-services

我正在创建一个WCF服务,该服务将位于与调用它的网站不同的服务器上。我遇到的问题围绕从浏览器和服务器获取上下文信息。

作为一个小背景,我正在编写的应用程序曾经作为一个简单的程序集存在于被调用以收集一些自定义Web分析的服务器上,并且在HttpContext上严重依赖于检索cookie,查询字符串信息和服务器变量。

我已经决定通过AJAX调用将所有这些内容传递给我的服务文本,但我不禁觉得我做错了。

有没有更好的方法将此信息传递给我的服务?

更新:

因此,在查看原始应用程序后,我决定采用另一种方法。当前程序集只引用了五个cookie,所以我可能只是简单地使用它们并定义一个包含这些值的数据协定以及使用该服务所需的服务器变量的值。我仍然要传递整个查询字符串,只需创建一个HttpRequest对象来访问这些值,因为它在整个应用程序中使用得更多。

我将在JSON包装器中将所有这些内容发送到服务,并使用构建器类在服务应用程序中创建分析对象。

我认为这是一个更好的解决方案 - 你怎么看?

1 个答案:

答案 0 :(得分:0)

建议使用WCF服务中的OperationContext.Current属性(MSDN链接here)来获取传入的请求详细信息。

参考文献:

  • 我正在网上挖掘,this SO帖子提供了一个良好的开端(我赞成它!)。

  • This MSDN主题介绍了如何从OperationContext中提取Cookie。

希望这会有所帮助。我还没试过,所以不能保证它有效。

p.s:如果这种方法有效,那么新的OperationContract应该没有参数。