在子文件夹中未加载ASMX DLL

时间:2017-04-14 20:19:23

标签: c# asp.net asmx

我正在使用ASP.NET(3.5)webforms。我有一个包含.ascx文件和.asmx文件的网站插件。我的文件夹结构如下所示:

  • MainWebSiteFolder
    • 插件
      • Plugin1
        • Plugin1.ascx
        • Plugin1.asmx
          • Plugin1.dll

在运行时,主网站(使用web.config标签)可以找到Plugin1.dll并将Plugin1.ascx加载到网页中。 Plugin1.ascx包含调用Plugin1.asmx的javascript代码,但IIS无法找到Plugin1.asmx代码隐藏,因为它在主网站的bin文件夹中寻找Plugin1.dll而不是插件的bin文件夹。

尝试通过网址(http://MyWebSite/Plugins/Plugin1/Plugin1.asmx)直接联系asmx会导致以下错误:

RunTime Error

Could not create type 'MyNamespace.Plugin1'.

Line 1:  <%@ WebService Language="C#" CodeBehind="Plugin1.asmx.cs" Class="MyNamespace.Plugin1" %>

有几个类似的问题,但没有一个能解决我的问题因为我只是拥有该插件,所以我不想将plugin.dll复制到主网站上bin文件夹(因为,当主网站升级时,它的bin文件夹被清空。我无法控制它)。我也不想让asmx成为独立的IIS应用程序,因为它需要能够与主网站共享会话。

我可以做些什么来将asmx文件与其子文件夹中的dll连接起来吗?

1 个答案:

答案 0 :(得分:1)

检查是否将web.config添加到包含程序集探测元素的插件或Plugin1目录(web.config inheritance)中(请参阅MSDN上的probing Element)。