gpt4 book ai didi

wcf - 如何使用HTTP上下文调试WCF服务?

转载 作者:行者123 更新时间:2023-12-04 13:45:22 25 4
gpt4 key购买 nike

我需要调试WCF服务,但它需要具有HTTP上下文。

当前,我在WCF服务网站上有一个解决方案,当我单击debug时,它会启动,然后启动一个不包含测试表单的html页面。

当项目运行时,我尝试手动启动wcftestclient,然后提供服务的地址,它会找到该服务,但是当我调用它时,它会绕过IIS层(或开发服务器),因此httpContext为空...

通过IIS上下文调试WCF服务的正确方法是什么?

最佳答案

在WCF中,即使WCF服务托管在IIS中,默认情况下还是通过设计,HttpContext都默认设置为NULL。毕竟,WCF不是ASP.NET。

如果确实需要HttpContext,则需要通过config(如果您在IIS中进行托管,则为web.config,否则为自托管应用程序的app.config),分别将其打开:

<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>

并且您需要通过将该属性放在服务类(实现服务协定)上来指定该事实(您的服务允许甚至期望ASP.NET兼容模式):
[AspNetCompatibilityRequirements
(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]
public class MyWCFService : IMyWCFService
{
......
}
RequirementsMode=Allowed只是简单地允许ASP.NET兼容模式,而 RequirementsMode=Required实际需要的是,并且如果没有它就无法工作。

完成此操作后,将调试器附加到IIS工作进程时,应获取 HttpContext.Current

马克

关于wcf - 如何使用HTTP上下文调试WCF服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1519690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com