我有一个应用程序,我使用Windows 7上的Visual Studio 2010中的安装程序进行部署。该程序在Windows 7和XP上部署和运行良好,但是当我在Windows 8系统上部署时,出现有关访问configuration文件的错误。
该程序安装在c:\ Program Files文件(x86)[公司名称] [应用程序名称] \中,被引用的文件是一个名称与Windows GetTempFile生成机器相似的临时文件,例如x4q0toqw.tmp。 它不存在于这个文件夹,然后有一个引用的execonfiguration文件(myapp.exe.config,它确实存在)
如果我在Windows 8系统上构build并运行代码,它安装并运行良好,我不会得到这个错误,但是如果我在Windows 7上部署Windows 8编译的应用程序,则会出现与访问configuration文件相同的错误。 这两台机器都是64位的,但生成一个32位的应用程序。
我不打算发布两个二进制文件。 谁能告诉我发生了什么事? 我正在尝试设置JITdebugging的过程中,我可以附加到EXE,当它抛出exception,因为debugging它本身并不能帮助我,因为我没有得到例外。
谢谢,
加里
这是在两个不同的机器上,但我login到相同的用户在同一个域,都是pipe理员。
也许你的应用程序是在加载过程中重写你的应用程序配置,这将导致系统质疑访问授权…如果是这样,可能是你可以改变你的应用程序(安装的)的属性有管理员权限..这会让你的应用程序自动有权编程编辑应用程序的配置。
或者…你可以忘记应用程序配置重写,并把所有的东西在默认的应用程序配置脚本。 但这会暴露您的应用程序数据库安全性…
我有同样的错误。 这是因为临时文件是在C:\Program Files (x86)\[Company Name]\[App Name]
文件夹中创建的,而普通用户(PC名称\用户)没有修改该文件夹的权限。 一旦我添加修改权限,它开始工作正常。
我在Win 7上通过提升我的服务所运行的帐户权限解决了Visual Studio 2010中非常类似的问题。 请参阅第9步:
将
Account
属性设置为LocalSystem.
当我的serviceProcessInstaller1
运行在LocalService
帐户下时,我得到了一个类似于你的错误。 但是将帐户更改为LocalSystem
解决了这个问题。 然后,我已安装的服务可以写入其C:\Program Files (x86)\[Company Name]\[App Name]\[App Name].exe.Config
文件。 当我运行服务的安装程序时,即使安装了Just me
复选框。
请记住这里的评论:
LocalSystem
值定义了高权限的帐户,但大多数服务不需要这样提升的权限级别。