无法加载文件或程序集' EntityFramework'使用UseShellExecute = False启动进程时

时间:2016-11-02 17:26:28

标签: asp.net vb.net entity-framework

当我从asp.net应用程序启动控制台应用程序并设置UseShellExecute = False时,我收到错误:

  

未处理的异常:System.IO.FileLoadException:无法加载   文件或程序集' EntityFramework,Version = 6.0.0.0,Culture = neutral,   公钥= b77a5c561934e089'或其中一个依赖项。一个   尝试引用不存在的令牌。 (例外   来自HRESULT:0x800703F0)

但是当我使用UseShellExecute = True启动它时,它可以工作。 asp.net和控制台应用程序都使用.net 4.6.1。 EntityFramework.dll和EntityFramework.SqlServer.dll与控制台应用程序位于同一文件夹中。

我已经尝试了一切,到目前为止无法摆脱错误。我更喜欢UseShellExecute = False,以便我可以将输出重定向到asp.net应用程序。它似乎无法找到dll但它应该是因为它是同一个文件夹。

以下是我正在使用的代码示例:

GROUP BY

1 个答案:

答案 0 :(得分:0)

经过大量调试后,它似乎是一个权限问题。之前我不认为这是一个问题,因为asp.net正在使用带有模拟的Windows身份验证,并且用户标识在计算机上具有管理员权限。但我想这与应用程序池标识有关。如果我将其更改为具有更高权限的用户帐户,则上述代码有效。我确实在其他地方读过,如果你将.Domain,.User,.Password属性添加到上面的代码,它仍然无法工作,除非应用程序池标识是同一个用户。所以我想我只是忘记重定向输出而只是使用UseShellExecute = True。