首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Citrix和WPF,蓝色窗口

Citrix和WPF,蓝色窗口
EN

Server Fault用户
提问于 2011-10-13 10:25:15
回答 2查看 2K关注 0票数 1

我们正在构建WPF应用程序,它将部署在Citrix上。目前,您只需在Citrix下面看到一个蓝色窗口,尽管应用程序在服务器本身上运行良好。

网上似乎确实有一些细节问题。

Citrix论坛讨论

微软热修复

我们已经应用了热点修复,但这似乎没有解决问题,至少对我们。

而且,在这个网站上也发现了同样的问题,但是它已经被提交人删除了,所以没有答案。

我在Windows 2003服务器上运行citrix 4.5。我试图发布一个WPF应用程序(任何WPF应用程序都有这个问题),而我得到的只是一个蓝色矩形,该应用程序应该在那里。矩形是我所期望的窗口的确切大小和形状,但它只是蓝色(看起来像citrix桌面背景的颜色)。有什么想法吗?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-11-01 09:29:07

这是一个很老的问题,但我也遇到过同样的问题。

我不知道为什么,但是当我有两个监视器时,Citrix只显示任何WPF的蓝色窗口。我通过拔出其中一个显示器来解决这个问题,因为某种原因,Citrix正确地显示了WPF。

我的同事和我完全一样的设置,除了我们的第二个显示器是不同的品牌。他的装置在两台显示器上都很好。

我们正在使用XP在Citrix上运行.Net 4.0。

票数 1
EN

Server Fault用户

发布于 2012-12-11 03:01:46

我自己还没有遇到这个问题,但是由于会话图形的内存使用量增加,我们在双屏幕客户端上经历了颜色深度的减少。

也许蓝色屏幕是自动退化的一个奇怪的工件,Citrix会在否则超过您的会话图形限制时启动吗?

我不确定MetaFrame XP,但据我所知,您可以通过GUI配置会话图形限制的最大值是8.192 kb。你的背景是什么?

我们做了什么

我们已经通过注册表值MaxLVBMem将限制提高到16 MB,以便能够以24位的颜色深度运行,甚至使用双1920x1080监视器。

代码语言:javascript
复制
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd\thin16
MaxLVBMem (REG_DWORD) = 0x1000000 (16777216 dec)

我们还将SessionViewSize从20提高到32:

代码语言:javascript
复制
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
SessionViewSize (REG_DWORD) = 0x20 (32 dec)

最后,我们将SessionPoolSize从缺省的32 MB (在内存大于2GB的系统上)增加到48 MB:

代码语言:javascript
复制
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
SessionPoolSize (REG_DWORD) = 0x30 (48 dec)

如Microsoft KB840342中所述:

理想情况下,MaxLVBMem不应超过系统分配的SessionPoolSize的35 %至40 %。如果超过40 %的SessionPoolSize将被所需的MaxLVBMem消耗,请向上调整SessionPoolSize参数

和:

Microsoft建议将此设置提高16 16。不建议将SessionPoolSize参数增加到80 80以上。

如果MaxLVBMem (设置为16 MB)要消耗SessionPoolSize的最大35-40%,这必须至少是46 MB。这是通过将默认值从32 MB提高到48 MB来实现的。

编辑:

但是,正如Microsoft的KB文章所述,您必须为您的环境找到平衡。16 MB从32 MB增加到48 MB可能不足以解决您的问题。但是,过多地增加值,可能会耗尽您的内存池。

如果分配更多内存以增加桌面堆,则可能会将终端服务器分配给其他资源(如非分页池、分页池和系统缓存)的内存减少。这将影响终端服务器的性能。另外,当将更多的内存分配给SessionViewSize和SessionPoolSize条目时,分配给映射内核虚拟空间的内存将减少。这反过来又可能使终端服务器只支持有限数量的用户。

尽管如此,我们目前看到的迹象是,48 MB的SessionPoolSize对于我们的环境来说可能还不够,所以我可能会用64 MB进行测试。

确保监视更改前后的内存池和空闲系统PTE:)

参考资料

  • 内114497:如何在Windows 2003上为会话图形提供更多内存)
  • 应112539:使用大量内存的会话变得没有响应性
  • 冻113497:不正确的专用CTX113497设置会导致会话冻结
  • 确840342:应用程序可能无法在终端服务环境中正确运行

当我再次阅读参考的知识库文章时,微软的KB840342听起来像是我在你的例子中尝试的第一件事。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/321098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档