Podczas pracy z usługą główną w programie SDL Tridion 2011 SP1 pojawia się błąd "błąd". Co jest nie tak z następującymi?Usterka błędu podczas tworzenia komponentu z usługą podstawową
namespace coreservice1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
using (ChannelFactory<ISessionAwareCoreService> factory =
new ChannelFactory<ISessionAwareCoreService>("wsHttp_2011"))
{
ISessionAwareCoreService client = factory.CreateChannel();
string SCHEMA_URI = "tcm:7-426-8";
var schemaFields = client.ReadSchemaFields(SCHEMA_URI, true, new ReadOptions());
foreach (var field in schemaFields.Fields)
{
Response.Write(string.Format("{0}", field.Name));
}
Response.Write(schemaFields.NamespaceUri);
string NEW_COMPONENT_FOLDER_URI = "tcm:8-15-2";
Tridion.ContentManager.CoreService.Client.ComponentData component = new Tridion.ContentManager.CoreService.Client.ComponentData
{
Schema = new LinkToSchemaData { IdRef = "tcm:8-426-8"},
Title = "Helloworldalll",
Id = "tcm:0-0-0",
LocationInfo = new LocationInfo
{
OrganizationalItem =
new LinkToOrganizationalItemData { IdRef = NEW_COMPONENT_FOLDER_URI}
},
};
string namespaceUri = schemaFields.NamespaceUri;
System.Text.StringBuilder content = new StringBuilder();
string First = "Hello World.This is Fisrt field";
content.AppendFormat("<{0} xmlns=\"{1}\">", schemaFields.RootElementName, namespaceUri);
content.AppendFormat("<{0} xmlns=\"{1}\">{2}</{0}>", "first", namespaceUri, First);
content.AppendFormat("</{0}>", schemaFields.RootElementName);
component.Content = content.ToString();
ComponentData comp = (ComponentData)client.Create(component, new ReadOptions());
string newlyCreatedComponentID = comp.Id;
Response.Write("Hello hai");
Response.Write("Id of newly created component: " + newlyCreatedComponentID);
}
}
catch (Exception ex)
{
Response.Write(ex.StackTrace);
Response.Write("exception is " + ex.Message);
}
}
}
}
„w System.ServiceModel.Channels.CommunicationObject.Close TimeSpan (timeout), w System.ServiceModel.Channels.ServiceChannelFactory.OnClose TimeSpan (timeout), w System.ServiceModel.Channels.ServiceChannelFactory.TypedServiceChannelFactory`1 .OnClose (Timeout timeout) w System.ServiceModel.Channels.CommunicationObject.Close (Timeout Timeout) w System.ServiceModel.ChannelFactory.OnClose (Timeout Timeout) w System.ServiceModel.Channels.CommunicationObject.Close (Timeout Timeout) w System.ServiceModel .ChannelFactory.System.IDisposable.Dispose() na coreservice1._Default.Page_Load (Object sender, EventArgs e) w D: \ SampleProjects_Tridion \ test \ coreservice1 \ coreservice1 \ coreservice.aspx.cs: line 73exception is The communicatio n obiekt, System.ServiceModel.Channels.ServiceChannel, nie mogą być używane do komunikacji, ponieważ jest w stanie nic zarzucić. „
"Obiekt komunikacji, System.ServiceModel.Channels.ServiceChannel, nie mogą być używane do komunikacji, ponieważ jest w stanie nic zarzucić." Oznacza to, że wystąpił błąd podczas wykonywania kodu i nie wykonano go poprawnie. Czy możesz udostępnić kod, którego użyłeś? Warto również sprawdzić ten wpis od Petera: http://pkjaer.wordpress.com/2011/11/30/core-service-clients-and-the-using-statement/ –
@NunoLinhares. Zaktualizowałem kod. Plz się z tym pogodził. – Patan
Kod jest bardzo pomocny. Czy możesz wskazać, która linia to # 73? Komunikat o błędzie wskazuje na linię 73, ale nie mogę odwzorować jej z powrotem na ten fragment kodu. –