2011-01-05 71 views
2

卡住了一个不寻常的问题,看起来我喜欢做不太常见的事情。网络服务无法在GAC中创建类型错误

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

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

然后,它被保存到输出。完成此步骤后,将启动应用程序池的回收以获取IIS中呈现的新页面。

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

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

+0

我不记得曾经听说过任何地方存在的web服务类,但在bin目录中。感谢史蒂夫 – 2011-01-05 21:09:50

回答

3

当您在GAC引用Web服务组件,您需要与组装使用完整的类名是这样的:

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

我们也到SharePoint部署Web服务,这完全适用于我们。

+0

,将调查此事。看起来完全像是一个将组件引用添加到web.config的解决方案,但是,这不是一个可行的解决方案。 – JadedEric 2011-01-05 21:39:54

+0

我不知道我关注你...如果这个标记位于你的.asmx存根文件的顶部,你的web服务应该可以正常工作。 – 2011-01-05 21:53:01