2011-01-05 6 views
2

erstellen Stuck mit einem ungewöhnlichen Problem, scheint, dass ich liebe, Dinge zu tun, die nicht sehr häufig ist.Web-Service konnte nicht Typfehler mit Typ in der GAC

Ich habe ein zusammengesetztes Steuerelement, das überprüft, ob eine bestimmte Web-Service-Datei im Stammverzeichnis meiner Anwendung vorhanden ist, wenn nicht, erstellt es die Datei mit der erforderlichen Anweisung in der Markup zu Ball Rolling, etwas wie :

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

die wiederum in den Ausgang gespeichert wird. Sobald dieser Schritt abgeschlossen ist, wird ein Recycling im Anwendungspool initiiert, damit die neue Seite in IIS gerendert wird.

Meine Assembly, auf die die Direktive verweist, ist GAC bereitgestellt, aber aus irgendeinem Grund wird ignoriert, wenn der ASMX über IIS bedient wird. Wenn ich die Assembly in das BIN-Verzeichnis für die Anwendung kopiere, funktioniert das einwandfrei, jedoch möchte ich diese Lösung als Webpartupdate in meiner SharePoint-Farm bereitstellen und die Aktivierung von FULL Trust in meiner Anwendung ist keine Route, die ich möchte gehen.

Ist meine Annahme korrekt, dass ASMX-Dateien oder jede Datei, die von einer Klasse innerhalb einer GAC-implementierten Assembly erbt, ignoriert werden? Ich sehe nicht, warum dies so weit sein würde, soweit ich weiß, wird IIS versuchen, die Assembly in der BIN abzubilden, wenn sie nicht gefunden werden kann, wird sie die GAC abfragen, um zu sehen, ob sie sie finden kann dort, richtig?

+0

Ich kann mich nicht erinnern, je von einer Web-Service-Klasse gehört zu haben, die irgendwo im Verzeichnis bin existiert. –

Antwort

3

Wenn Sie einen Web-Service Assembly im GAC verweisen, müssen Sie mit Montage wie diese den vollständigen Klassennamen verwenden:

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

Wir auch Web-Services auf Sharepoint bereitstellen und dies funktioniert perfekt für uns.

+0

danke steve, schau dir das an. sieht genauso aus wie eine Lösung, um der web.config Assemblyreferenzen hinzuzufügen. Dies ist jedoch keine praktikable Lösung. – JadedEric

+0

Ich bin mir nicht sicher, ob ich Ihnen folge ... Wenn dieses Markup an der Spitze Ihrer .asmx-Stub-Datei steht, sollte Ihr Web-Service gut funktionieren. –

Verwandte Themen