好的,这就是交易。我有一个名为Import.exe的项目。它将查找文件,解析它并使用Castle AR导入。这在命令行运行良好。
现在需要从文件上传后运行相同的Import.exe和VB.NET web程序。我正在使用System.Debug.Process.Start来调用exe。文件上传很好,程序运行(我在任务管理器中看到它几秒钟),我已经重定向错误输出,它给了我这个:
未处理的异常:System.IO.FileLoadException:无法加载文件或程序集'Castle.ActiveRecord,Version = 1.0.3.0,Culture = neutral,PublicKeyToken = 407dd0808d44fbdc'或其依赖项之一。访问被拒绝。
我把dll放在与exe相同的文件夹中。我已将这些内容添加到GAC中,我甚至已将程序集引用添加到web.config文件网站。
现在,由于我来自Linux / Ruby Camp,我在非常陌生的国家,并且耗尽了我所有的资源。任何帮助将不胜感激!哎呀,甚至解释或链接到良好的参考资料,以了解命令行与VB.NET的程序集的差异将是伟大的。
答案 0 :(得分:1)
.NET Framework对Web端具有一些相当严格的默认安全设置。我猜你需要为你的调用程序提供一些更宽松的信任设置。
您可以尝试从您的网络程序(而不是您的Import.exe)启动一些sample program at MSDN,以查看默认情况下您授予的访问权限类型。
一旦了解了特定应用程序需要什么样的信任,您就可以follow these steps修改被叫程序集的信任级别。
祝你好运!从Linux到Windows的过渡尤其痛苦:)