- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 WCF 服务,使用 basicHttpBinding 公开一个 ServiceContract,因此根据我的理解,InstanceContextMode 将设置为 PerCall(因为 basicHttpBinding 不支持 session )并且 ConcurrenyMode 将设置为 Single。
这个WCF的客户端是一个windows服务,它同时调用服务上的4个不同的操作,在服务中我们使用了一个单例类并且有很少的静态变量。我们一直面临一个错误的值被传递给某些数据库存储过程的问题。
使用 PerCall InstanceContextMode 和单并发模式,我了解为每次调用创建的新服务 instacne,因此我认为即使在服务实现和静态中有一些单例类(我们没有使其线程安全)变量所有对象都将被销毁,但我们观察到运行 SQL 分析器时旧值正在传递给数据库。
我们在一种三层架构中编写了我们的 WCF 服务代码,我指的是 ServiceClass、BusinessLogicLayer 和 DataAccessLayer,PerCall 设置为 instanceContextMode 当我们说服务实例在客户端请求完成后被销毁时,这是否意味着我们销毁ServiceClass、BusinessLogicLayer和DataAccessLayer中的所有对象?
请帮助我了解可能出了什么问题
最佳答案
InstanceContextMode PerCall 意味着您的服务的新类每次调用 都会实例化。 AppDomain 中的静态变量不会被重置。只要您的 AppPool 未被回收,它们就会保留在服务调用之间。
从您的代码中删除所有静态变量,包括单例。无论如何,它们从不属于您的架构。
关于c# - WCF 服务的 PerCall InstanceContextMode 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26945111/
所以我在 WinForms 应用程序中托管 WCF 服务。我有以下 [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple,
有什么方法可以检查我的 WCF 服务使用的是什么 InstanceContextMode? 我可以在 svclog 文件中找到/写入这个值吗? 谢谢! 最佳答案 它没有登录到痕迹。但是您可以在运行时找
有没有办法做到这一点... [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] ...以编程方式? 原因是我想在集成
我有一个看起来像这样的服务: [ServiceContract(SessionMode = SessionMode.Required)] public interface ILabListener {
我已经为 WCF 实现了一个 REST 服务。该服务提供了一个可以被多个客户端调用的函数,这个函数需要 1 分钟以上才能完成。所以我想要的是,对于每个客户端,使用一个新对象,以便一次处理多个客户端。
我正在使用 Unity.WCF 为 WCF 服务注入(inject)依赖项。当我将服务设置为 InstanceContextMode.Single 时出现问题. 我在谷歌上发现当InstanceCon
ServiceBehavior 设置 InstanceContextMode.Single 是否设置单个实例而不考虑端点的数量? 最佳答案 是的,无论端点数量有多少,您都只会获得一个具有 Instan
我有一个 WCF 服务,使用 basicHttpBinding 公开一个 ServiceContract,因此根据我的理解,InstanceContextMode 将设置为 PerCall(因为 ba
我想避免在我的系统中生成重复的数字。 CreateNextNumber() 将: 找到最后创建的号码。 将值加一。 用新数字更新数据库中的值。 我想避免两个客户端同时调用这个方法。我担心他们会提取最后
我正在尝试在具有单个 instanceContextMode 的 WCF 上异步调用一个方法。 有没有办法在等待异步方法时重用服务实例?我使用任务方式在我的 WCF 服务引用上生成异步操作。 我做了一
我想从 OperationContext.Current 访问请求 header 信息,是否可以安全地假设如果 WCF 服务有数千次调用,事情不会混淆,无论 InstanceContextMode 是
我的 wcf 服务配置有问题。我希望每次调用我的服务时都创建一个新的服务实例。对于并发性,我希望一个调用在另一个调用开始之前完成。 因此,如果我有这样的服务: [ServiceBehavior(Con
我是否需要在使用 ConcurrencyMode.Multiple 的 WCF 服务中实现自己的锁定?和 InstanceContextMode.PerCall或 InstanceContextMod
我有 AJAX 客户端使用 SOAP 1.2 使用的 WCF 服务 网络配置: 据我所知read , 我必须使用 因为使用“wsHttpBinding”绑
我查看了不同的 WCF 服务行为( ConcurrencyModes/InstanceContextModes ),但没有得到 ConcurrencyMode 之间的区别“单个”/“多个”使用 Ins
在我的托管应用程序中,我目前的 WCF 服务运行方式为: SomeService service = new SomeService(container) //IUnityContainer Serv
还没有通过相当多的谷歌搜索找到这个。 我知道我可以通过装饰类名来设置实例: [ServiceBehavior(InstanceContextMode = InstanceContextMode.Per
我最近开始开发一个相对简单的 WCF REST 服务,该服务返回 JSON 格式的结果。起初一切都很好,服务很快就启动并运行了。 该服务的主要功能是返回从数据库中提取的大量数据。这些数据很少改变,所以
我们有一个 WCF 服务,可以进行大量事务性 NHibernate 调用。有时我们会看到 SQL 超时,即使调用正在更新不同的行并且表被设置为行级锁定。 在深入研究日志后,看起来不同的线程正在进入代码
我有一个带有静态数据上下文的 WCF 服务,但没有并发性。它已经运行了一年,没有任何问题,但前几天我们看到了一些奇怪的行为,用户正确地传递了数据,但得到了意想不到的不正确的数据。这确实通过了 F5,所
我是一名优秀的程序员,十分优秀!