终端服务器上的ConfigurationErrorsException

时间:2012-05-23 09:19:16

标签: .net winforms terminal-services

在终端服务器上安装.net应用程序时,启动应用程序时会抛出此异常:

System.Configuration.ConfigurationErrorsExceptionMessage = Index 1 is out of range.FullText=
 System.Configuration.ConfigurationErrorsException: Index 1 is out of range.
   at System.Configuration.ConfigurationElementCollection.BaseGet(Int32 index)
   at System.Configuration.ConnectionStringSettingsCollection.get_Item(Int32 index)

找不到AppName.exe.config中的连接字符串。但是,配置文件放在.exe文件旁边的正确位置,并且.config文件中存在连接字符串。 这个错误只发生在终端服务器上,在XP,Vista,win7上运行正常......

Appname.exe.config:

<?xml version="1.0"?>
<configuration>
    <configSections>
        ...
    </configSections>
    <connectionStrings>
        <add name="..."
            connectionString="..." />
        <add name="..."
            connectionString="..." />
    </connectionStrings>
...

发生了什么事?

1 个答案:

答案 0 :(得分:1)

正如您可能也发现的那样,您获得的错误与应用程序无法从您的xml文件读取/写入有关。

http://msdn.microsoft.com/en-us/library/system.configuration.configurationerrorsexception(v=vs.80).aspx

在Citrix客户端和终端服务器上运行应用程序时,我遇到了类似的问题,应用程序本身在客户端操作系统和VHD上运行良好。

至于排除故障,我建议如下..

  • 右键单击您的可执行文件,如果您有该选项,请以管理员身份运行它。如果可行,那么您可以确定您在标准用户配置文件中存储的位置缺少正确的权限。 (即使您拥有TS的管理员权限,这可能仍然有所不同。)
  • 您可以测试的另一个选项(如果尚未测试)将应用程序存储在您拥有最多访问权限的位置。这很可能是您的用户配置文件,看看它是否从那里运行。
  • 作为第三个也是最后一个选项,如果可能的话,让TS拥有更高权限的人尝试并运行该应用程序。

以上所有步骤均与权利相关,因为这是我的应用程序的问题。但当然这只是开始排除故障的一种方法..希望这会有所帮助。