遇到一个不寻常的问题时,我似乎喜欢做一些不常见的事情。
我有一个复合控件,它检查给定的 Web 服务文件是否存在于我的应用程序的根目录中,如果不存在,它会在标记中创建带有必要指令的文件以进行滚动,如下所示:
<%@ WebService Language="C#" Class="Company.Project.Assembly.ClassName" %>
反过来,它被保存到输出中。完成此步骤后,将启动应用程序池回收,以在 IIS 中呈现新页面。
该指令指向的程序集是 GAC 部署的,但由于某些任意原因,当通过 IIS 提供 ASMX 时,该程序集被忽略。如果我将程序集复制到应用程序的 BIN 目录中,则工作正常,但是,我想将此解决方案部署为我的 SharePoint 场中的 Web 部件更新,并且在我的应用程序中启用完全信任并不是我想要的途径去。
我的假设是正确的,即忽略 ASMX 文件或从 GAC 部署的程序集中的类继承的任何文件?我不明白为什么会这样,据我所知,IIS会尝试在BIN中映射程序集,如果找不到它,它会询问GAC以查看是否可以在中找到它在那里,对吗?
当您在 GAC 中引用 Web 服务程序集时,您需要使用程序集的完整类名,如下所示:
<%@ WebService Language="C#" Class="Company.Project.Assembly.ClassName, Company.Project.Assembly, version=1.0.0.0, Culture=neutral, PublicKeyToken=0000000000000000" %>
我们还将 Web 服务部署到 SharePoint,这对我们来说非常适合。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)