我正在使用ASP.NET(3.5)webforms。我有一个包含.ascx文件和.asmx文件的网站插件。我的文件夹结构如下所示:
在运行时,主网站(使用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连接起来吗?
答案 0 :(得分:1)
检查是否将web.config添加到包含程序集探测元素的插件或Plugin1目录(web.config inheritance)中(请参阅MSDN上的probing Element)。