我正在尝试连接到核心服务,在大多数情况下都会提供特定用户的凭据,但有时我会收到代理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 }
答案 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">
如果有效,请告诉我们,如果我需要在配置文件中进行任何其他更改,请建议。