Ich versuche, ein Datenmodell zu erstellen, um mit meiner GUI-Erweiterung zu arbeiten, ich habe einen einfachen Dienst erstellt, der eine Zeichenfolge zurückgibt. Ich habe die model.config konfiguriert und hinzugefügt, um den folgenden Eintrag in meinem web.configFehler beim Erstellen des Webdienstes in einem Modell
<services>
<service name="CMSExtensions.Model.Services.PublicationInfo" behaviorConfiguration="Tridion.Web.UI.ContentManager.WebServices.DeveloperBehavior">
<endpoint name="PublicationInfo" address="" behaviorConfiguration="Tridion.Web.UI.ContentManager.WebServices.AspNetAjaxBehavior" binding="webHttpBinding" bindingConfiguration="Tridion.Web.UI.ContentManager.WebServices.WebHttpBindingConfig" contract="CMSExtensions.Model.Services.PublicationInfo"/>
</service>
</services>
Wenn ich versuche, diesen Dienst direkt im Browser ich folgende Fehlermeldung erhalten auszuführen:
Parser-Fehlermeldung: ist kein Dienstverhalten namens 'Tridion.Web.UI.ContentManager.WebServices.DeveloperBehavior'
.
und wenn ich versuche, es in GUI über die JS aufrufen bekomme ich diesen Fehler:
Uncaught TypeError: Cannot call method 'GetPublicationData' of undefined
CMSExtensions.Popups.PublicationInfo._onExecuteButtonClickedPublicationInfo_v6.0.0.39607.0_.aspx:433
(anonymous function)PublicationInfo_v6.0.0.39607.0_.aspx:2
EventRegister.f.executeListenerPublicationInfo_v6.0.0.39607.0_.aspx:16
aPublicationInfo_v6.0.0.39607.0_.aspx:16
Tridion.ObjectWithEvents.processHandlersPublicationInfo_v6.0.0.39607.0_.aspx:14
Tridion.ObjectWithEvents.fireEventPublicationInfo_v6.0.0.39607.0_.aspx:14
Tridion.Controls.Button.onclickPublicationInfo_v6.0.0.39607.0_.aspx:428
Tridion.Controls.Button.onmouseupPublicationInfo_v6.0.0.39607.0_.aspx:428
(anonymous function)PublicationInfo_v6.0.0.39607.0_.aspx:2
EventRegister.f.executeListenerPublicationInfo_v6.0.0.39607.0_.aspx:16
a
I SDL Tridion 2011 bin mit (nicht SP1). Hier
sind der Service-Code
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using CMSExtensions.Model.Progress;
using Tridion.Web.UI.Models.TCM54;
namespace CMSExtensions.Model.Services
{
[ServiceContract(Namespace = "http://CMSExtensions.Model.Services", Name = "PublicationInfo")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class PublicationInfo : WCFServiceBase
{
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
public string GetUserDescription()
{
return "sachin";
}
}
}
Modell Config:
<cfg:groups>
<cfg:group name="CMSExtensions.Model.Services" merger="Tridion.Web.UI.Core.Configuration.Resources.DomainModelProcessor" merge="always">
<cfg:domainmodel name="CMSExtensions.Model.Services">
<cfg:fileset>
<!-- <cfg:file type="script">/Scripts/Constants.js</cfg:file> -->
</cfg:fileset>
<cfg:services>
<cfg:service type="wcf">/Services/PublicationInfo.svc</cfg:service>
</cfg:services>
</cfg:domainmodel>
</cfg:group>
</cfg:groups>
Web.config Einträge:
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="CMSExtensions.Model.Services.PublicationInfo" behaviorConfiguration="Tridion.Web.UI.ContentManager.WebServices.DeveloperBehavior">
<endpoint name="PublicationInfo" address="" behaviorConfiguration="Tridion.Web.UI.ContentManager.WebServices.AspNetAjaxBehavior" binding="webHttpBinding" bindingConfiguration="Tridion.Web.UI.ContentManager.WebServices.WebHttpBindingConfig" contract="CMSExtensions.Model.Services.PublicationInfo"/>
</service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
Können Sie Ihren Web-Service-Code und das JavaScript Ihres Befehls auch teilen? Ohne diese ist es ziemlich schwierig zu sehen, was hier falsch läuft. –
@FrankvanPuffelen - nur das Code-Snippet hinzugefügt. – sachspeak
Können Sie bitte den Einzug dieser Konfiguration beheben? Sie können es in jedem Texteditor machen und es wird für alle hier lesbarer gemacht. –