我们正在构建WPF应用程序,它将部署在Citrix上。目前,您只需在Citrix下面看到一个蓝色窗口,尽管应用程序在服务器本身上运行良好。
网上似乎确实有一些细节问题。
Citrix论坛讨论
微软热修复
我们已经应用了热点修复,但这似乎没有解决问题,至少对我们。
而且,在这个网站上也发现了同样的问题,但是它已经被提交人删除了,所以没有答案。
我在Windows 2003服务器上运行citrix 4.5。我试图发布一个WPF应用程序(任何WPF应用程序都有这个问题),而我得到的只是一个蓝色矩形,该应用程序应该在那里。矩形是我所期望的窗口的确切大小和形状,但它只是蓝色(看起来像citrix桌面背景的颜色)。有什么想法吗?
发布于 2012-11-01 09:29:07
这是一个很老的问题,但我也遇到过同样的问题。
我不知道为什么,但是当我有两个监视器时,Citrix只显示任何WPF的蓝色窗口。我通过拔出其中一个显示器来解决这个问题,因为某种原因,Citrix正确地显示了WPF。
我的同事和我完全一样的设置,除了我们的第二个显示器是不同的品牌。他的装置在两台显示器上都很好。
我们正在使用XP在Citrix上运行.Net 4.0。
发布于 2012-12-11 03:01:46
我自己还没有遇到这个问题,但是由于会话图形的内存使用量增加,我们在双屏幕客户端上经历了颜色深度的减少。
也许蓝色屏幕是自动退化的一个奇怪的工件,Citrix会在否则超过您的会话图形限制时启动吗?
我不确定MetaFrame XP,但据我所知,您可以通过GUI配置会话图形限制的最大值是8.192 kb。你的背景是什么?
我们已经通过注册表值MaxLVBMem将限制提高到16 MB,以便能够以24位的颜色深度运行,甚至使用双1920x1080监视器。
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd\thin16
MaxLVBMem (REG_DWORD) = 0x1000000 (16777216 dec)我们还将SessionViewSize从20提高到32:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
SessionViewSize (REG_DWORD) = 0x20 (32 dec)最后,我们将SessionPoolSize从缺省的32 MB (在内存大于2GB的系统上)增加到48 MB:
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:)
当我再次阅读参考的知识库文章时,微软的KB840342听起来像是我在你的例子中尝试的第一件事。
https://serverfault.com/questions/321098
复制相似问题