2011-01-05 69 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