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