Web服务无法在GAC中使用类型创建类型错误

时间:2011-01-05 21:03:26

标签: c# web-services asmx gac

遇到一个不寻常的问题,似乎我喜欢做一些不太常见的事情。

我有一个复合控件,它检查给定的Web服务文件是否存在于我的应用程序的根目录中,如果不存在,它会在标记中创建带有必要指令的文件以进行滚动,例如:

<%@ WebService Language="C#" Class="Company.Project.Assembly.ClassName" %>

反过来又保存到输出中。完成此步骤后,将启动应用程序池上的回收以在IIS中呈现新页面。

指令指向的程序集是GAC部署的,但是当ASMX通过IIS提供服务时,某些原因被忽略了。如果我将程序集复制到BIN目录中,该应用程序工作正常,但是,我想将此解决方案部署为我的SharePoint场中的Web部件更新,并且在我的应用程序中启用了完全信任不是我想要的路径去。

我是否认为ASMX文件或从GAC部署的程序集中的类继承的任何文件被忽略是正确的?我不明白为什么会这样,据我所知,IIS会在BIN中尝试映射程序集,如果找不到,它会去询问GAC是否可以找到它在那里,对吗?

1 个答案:

答案 0 :(得分:3)

在GAC中引用Web服务程序集时,需要使用如下所示的程序集的完整类名:

<%@ WebService Language="C#" Class="Company.Project.Assembly.ClassName, Company.Project.Assembly, version=1.0.0.0, Culture=neutral, PublicKeyToken=0000000000000000" %>

我们还将Web服务部署到SharePoint,这对我们来说非常有效。