Ошибка при доступе к основной службе с клиентского компьютера - PullRequest
0 голосов
/ 03 апреля 2012

Я работаю с базовой службой на SDL Tridion 2011, подключаясь с клиентского компьютера к серверу Tridion. Я получаю какую-то ошибку, когда пытаюсь ее исправить.

Пример кода

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();
                    ComponentData comp = (ComponentData)client.Create(component, new ReadOptions());

                    ...

                    //steps to create component                

               }
            }
            catch (Exception ex)
            {
                Response.Write(ex.StackTrace);
                Response.Write("exception is " + ex.Message);
            }
         }
    }
}

Мой web.config для wsHttp_2011 -

<wsHttpBinding>
    <binding name="wsHttp" transactionFlow="true" maxReceivedMessageSize="10485760">
        <readerQuotas maxStringContentLength="10485760" maxArrayLength="10485760"/>
            <security mode="Message">
                <message clientCredentialType="Windows"/>
            </security>


<endpoint name="wsHttp_2011" address="http://serveraddress:1000/webservices/CoreService2011.svc/wsHttp" binding="wsHttpBinding" bindingConfiguration="wsHttp" contract="Tridion.ContentManager.CoreService.Client.ISessionAwareCoreService">
    <identity>
        <dns value="serveraddress"/>
    </identity>
</endpoint>

Ошибка:

Server Error in '/' Application. 
________________________________________
Could not load file or assembly 'Tridion.Logging' or one of its dependencies. Strong name signature could not be verified.  The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045) 

Мой клиентский код ссылается на Tridion.Logging. Эта сборка существует в моем коде. Независимо от его существования я получаю ошибку. И версии DLL, на которые я ссылаюсь в клиентском коде, точно такие же, как и на сервере.

Может ли кто-нибудь помочь, что все изменения мне нужно сделать?

Я также проверил журналы событий на сервере tridion. Я не нашел там ни одного добавленного журнала.

Код работал нормально при выполнении на сервере.

Журналы просмотра событий выглядят так с клиентского компьютера:

ConfigurationErrorsException

Не удалось загрузить файл или сборку 'Tridion.Logging, версия = 6.1.0.25, Culture = нейтральный, PublicKeyToken = ddfc895746e5ee6b' или одна из его зависимостей. Подпись строгого имени не может быть проверена. Возможно, сборка была подделана или была подписана с задержкой, но не полностью подписана с правильным закрытым ключом. (Исключение из HRESULT: 0x80131045) в System.Web.Configuration.CompilationSection.LoadAssemblyHelper (String assemblyName, Boolean starDirective) в System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBiInfo. на System.Web.Compilation.BuildManager.GetReferencedAssemblies (CompilationSection compConfig) в System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies () в System.Web.Compilation.BuildManager.CallPreStartInitMethods () в System.Web.Hosting.HostingEnvironment.Initialize (ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) Не удалось загрузить файл или сборку 'Tridion.Logging, Версия = 6.1.0.25, независимая или независимая, PublicKey5. Подпись строгого имени не может быть проверена. Возможно, сборка была подделана или была подписана с задержкой, но не полностью подписана с правильным закрытым ключом. (Исключение из HRESULT: 0x80131045) в System.Reflection.RuntimeAssembly._nLoad (AssemblyName fileName, Строка codeBase, Доказательство assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark & ​​stackMark, логическое_обрабатывающее_обрабатывающее_обрабатывающее устройство имя_файла, String CodeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark & ​​stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, булевы suppressSecurityChecks) в System.Reflection.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark & ​​stackMark, Boolean forIntrospection, булевы suppressSecurityChecks) в системе. Reflection. ion.LoadAssemblyHelper (String assemblyName, Boolean starDirective) Не удалось загрузить файл или сборку «Tridion.Logging» или одну из ее зависимостей. Подпись строгого имени не может быть проверена. Возможно, сборка была подделана или была подписана с задержкой, но не полностью подписана с правильным закрытым ключом. (Исключение из HRESULT: 0x80131045)
в System.Web.Configuration.CompilationSection.LoadAssemblyHelper (String assemblyName, Boolean starDirective) в System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory () в System.Web.Configuration.Chilation.BuildManager.GetReferencedAssemblies (CompilationSection compConfig) при System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies () в System.Web.Compilation.BuildManager.CallPreStartInitMethods () в System.Web.Hosting.HostingEnvironment.Initialize (ApplicationManager AppManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)

Я не нашел ни одного события в журнале на сервере.

Ответы [ 2 ]

4 голосов
/ 03 апреля 2012

Вы не должны ссылаться на Tridion.Logging.Это не требуется для CoreService.Все, что вам нужно, это CoreService.dll.Более того, Tridion.Logging не является публичным API и поэтому не должен использоваться вообще

0 голосов
/ 04 апреля 2012

Проверьте журнал событий Tridion. Также убедитесь, что вы не используете другие сборки Tridion.

...