0

我正在尝试连接到提供特定用户凭据的核心服务,但有时我会收到代理 407 错误(如本问题的标题所述),此自动在 10-15 分钟后得到解决,然后我能够再次连接到核心服务。这个问题有永久的解决方案吗?我知道这是一个简单的问题,但我不能将凭据作为 System.Net.CredentialCache.DefaultCredentials;或作为网络上可用的其他解决方案。下面是我连接到核心服务的代码,即使我在每次操作后调用 client.Close() 也会出现这个问题。

core_service.ServiceReference1.SessionAwareCoreService2010Client client = new SessionAwareCoreService2010Client(); 
    client.ClientCredentials.Windows.ClientCredential.UserName = "myUserName"; 
    client.ClientCredentials.Windows.ClientCredential.Password = "myPassword"; client.Open();

 if (client.State == System.ServiceModel.CommunicationState.Opened)
            {
                // some code                }
4

3 回答 3

3

试试这个而不是“SessionAwareCoreService2010Client”使用“CoreService2010Client”

var objclient = new CoreService2010Client();
            objclient.ClientCredentials.Windows.ClientCredential.UserName = Generation.Settings.Username;
            objclient.ClientCredentials.Windows.ClientCredential.Password = Generation.Settings.Password;
            objclient.Open();
于 2012-09-06T12:50:55.317 回答
2

有时在您使用 Fiddler 类型的 Web 调试工具时会发生这种情况。您可以尝试直接设置代理凭据以找出原因如下 -

request.Proxy = new WebProxy("proxyIp", 8080);
 request.Proxy.Credentials = CredentialCache.DefaultCredentials; 

注意:- 以上建议基于我的 .net 经验,而不是基于 tridion 核心服务。

于 2012-09-06T13:01:07.413 回答
0

可能的解决方案是增加端点的超时时间我已经将超时时间从现有的 1 分钟更新为 15 分钟,下面是 app.config 的特定端点的代码

    <binding name="wsHttp_2010" closeTimeout="00:15:00" openTimeout="00:15:00"
                receiveTimeout="00:10:00" sendTimeout="00:15:00" bypassProxyOnLocal="false"
                transactionFlow="true" hostNameComparisonMode="StrongWildcard"
                maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                allowCookies="false">

让我们看看这是否可行,请建议我是否需要在配置文件中进行任何其他更改。

于 2012-09-07T06:10:29.653 回答