Translate for Storefront从最初发布到现在已经过去了超过5年时间,目前仍然时不时有人来咨询具体的使用问题,所以决定对过去收集到的一些问题进行集中处理,过程中由于系统以及StoreFront的一些限制,于是重构了所有代码以及配置文件,以便后续的维护和使用。
旧版本中存在的一些限制和问题
- 对于通过WebHelper方式调用的浏览器或者终端无法进行修改。比如Chrome浏览器就是使用的这种方式,在点击应用的时候,Storefront会返回一个链接(而不是常规的ICA文件),而后调用Receiver的过程中传递过去,Receiver再来通过链接下载ICA文件。
- 由于IIS Module权限的问题,导致配置文件以及写日志文件存在权限问题,配置过程中较为复杂,所以,在最开始的时候就决定不引入日志,从而导致后续出问题后troubleshooting比较困难。
Translate IP for StoreFront v2 部署方法如下
- 复制 StoreCustomization_Launch.dll 到对应Store的Bin目录:12# 比如默认Store站点路径如下:C:\inetpub\wwwroot\Citrix\Store\Bin
- 复制并替换完成后,默认会立即重新加载,不需要iisreset或者重启服务器就会生效
- 修改Store\Web.config,并添加Translate规则配置12345678910111213141516171819202122# 默认Store的配置文件路径如下:C:\inetpub\wwwroot\Citrix\Store\web.config# 搜索<appSettings/># 然后替换<appSettings/>为如下的内容# 每条规则对应一条add<appSettings><add key="VDA_IP1" value="Translate_Rule1" /><add key="VDA_IP2" value="Translate_Rule2" /></appSettings># 下面是一个完整的示例<appSettings><!-- 替换172.16.10.20:1494为1.1.1.1:1495,同时替换*:2598为*:2599 --><add key="172.16.10.20" value="172.16.10.20:1494,1.1.1.1:1495,*:2596,*:2599" /><!-- 替换172.16.10.21:1494为2.2.2.2:1496 --><add key="172.16.10.21" value="172.16.10.21:1494,2.2.2.2:1496" /><!-- 替换*:2598为*:2600 --><add key="172.16.10.22" value="*:2598,*:2600" /><!-- 一些高级用法,比如替换TWIMode=On为TWIMode=Off可以修改ICA配置来启用Window Mode --><add key="172.16.10.23" value="TWIMode=On,TWIMode=Off" /></appSettings>
注意:
- 对于每个ICA请求,只有Add Key指定的IP地址匹配了ICA文件中Address中的IP才会进行修改,否则跳过
- Value中规则以英文逗号分隔,分割后参数个数应为双数,也就是每两个一组。针对每一组,在ICA文件中搜索第一部分字符,然后替换为第二部分。所以,可以看到在示例中,第一条指定两组(4个逗号分隔的字符串),分别用来处理1494和2598两个端口。
- 同理,最后一条规则,根据字符串替换的原理,可以用来替换任何ICA文件中的设置
⚠️ 2020/12/05 修正 <add key=”172.16.10.23″ value=”TWIMode=On,TWIMode=Off” /> 等条目缺少斜线(/)关闭标签的问题
Troubleshooting
排错的话,主要使用的工具为DebugView。
- 下载DbgView之后,在Storefront上打开并运行
- 菜单Capture中勾选Capture Global Win32。否则的话,无法看到任何日志
- 通过快捷键CRTL+L打开Filter设置,然后输入TranslateIP并点击OK,或者如下图所示操作。
- CRTL+X清除之前的日志
- 到此一切设置完成,重现问题即可。示例日志如下:
下载地址
StoreCustomization_Launch (3.8 KB, 850 次)
您好!
先前使用您的V1版本,一直运行稳定;
目前配置CITRIX XENAPP 7.19_1000的版本,计划使用TranslateIP V2版,配置web.config总是出错,SF也出错;
日志如下:
An error occurred during refresh.
Citrix.DeliveryServices.PowerShell.Command.RunnerInterfaces.Exceptions.PowerShellExecutionException: An error occurred while running a PowerShell command. —> System.Exception: No Web Receiver Services found within IIS site ‘-1’. The ‘add’ start tag on line 151 position 4 does not match the end tag of ‘appSettings’. Line 152, position 5. (C:\inetpub\wwwroot\Citrix\THAZP4SSFWeb\web.config line 152)
— End of inner exception stack trace —
at Citrix.DeliveryServices.PowerShell.Command.Runner.PowerShellCommandRunner.InvokeCommand(IPowerShellCommand command, Command powerShellCommand)
at Citrix.DeliveryServices.PowerShell.Command.Runner.PowerShellCommandRunner.RunCommand(IPowerShellCommand command)
at Citrix.DeliveryServices.Admin.WebReceiver.PowerShell.WebReceiversBL.GetSummary()
at Citrix.DeliveryServices.Admin.Stores.Controllers.StoresController.RefreshStoreList()
可以帮忙看看是哪里错误了吗?非常感谢!
这个看起来像是web.config的格式问题,看看152行附近新加的配置,tag是否正常闭合了
Froyo:您好!
谢谢支持,152行的配置如下:
应该是正常闭合了,用DebugView也捕获不到任何日志,已勾选“Capture Global Win32”
麻烦帮忙看看?
再次感谢!
配置未发成成功:
因为配置文件格式错误导致整个StoreFront出错,这个时候DLL还没有调用,所以没有任何Log
可以尝试删掉新加的配置,然后几行几行的添加来缩小问题
好的,谢谢支持。
我今天尝试一下,有结果后反馈给您。
谢谢!
1912 lstr cu1同样遇见这个问题,请问楼主解决了吗
没有解决了,还是继续使用V1版本。
在7.15cu5上测试成功。
你好,能分享一下你的配置文件吗? 部分,我这里还是不成功。