远程服务器返回意外响应:(407)需要代理授权

时间:2012-09-06 12:34:57

标签: tridion tridion-2011

我正在尝试连接到核心服务,在大多数情况下都会提供特定用户的凭据,但有时我会收到代理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                }

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分:2)

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

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

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

答案 2 :(得分: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">

如果有效,请告诉我们,如果我需要在配置文件中进行任何其他更改,请建议。