在asp.net中加载混合模式程序集

时间:2015-05-21 20:45:55

标签: asp.net mixed-mode

我有一个引用混合模式dll的asp.net webservice。本机dll是混合模式程序集引用位于添加到SYSTEM PATH的目录中。

我想从SYSTEM PATH中删除本机dll的目录,所以我将所有本机dll复制到webservice的bin目录,但是我找不到文件异常。

asp.net是否不在webservice的bin目录中查找本机dll?有没有办法动态设置SYSTEM PATH?我怎样才能让它发挥作用。

1 个答案:

答案 0 :(得分:0)

如果有人遇到类似的情况,我就是这样做的,可以从不在这些位置的位置加载混合模式组件:

  1. 加载应用程序的目录。对于ASP.Net,这将解析为IIS 6的%windir%\ Microsoft.Net \ Framework \ v ### \或%windir%\ system32 \ inetsrv。
  2. 当前目录。对于ASP.Net,这将解析为IIS 6的%windir%\ System32 \ inetsrv。如果使用内置Web服务器,则解析为C:\ Program Files \ Microsoft Visual Studio 8下的路径。 / LI>
  3. Windows系统目录。使用GetSystemDirectory函数获取此目录的路径。
  4. Windows目录。使用GetWindowsDirectory函数获取此目录的路径。
  5. PATH环境变量中列出的目录。
  6. 我将混合模式程序集上的本机dll设置为延迟加载。然后我按照http://blogs.msdn.com/b/jorman/archive/2007/08/31/loading-c-assemblies-in-asp-net.aspx

    中的选项2b

    我只需要对选项2b进行一次小调整。它说要更新" Application_Start" Global.asax中的方法,但我不得不更新" Application_BeginRequest"使用这个Web服务的方法。