C# 从同一服务器上的MVC调用WCF服务时发生SocketException
我有一台Windows 2008服务器,带有IIS 7.5和一个IP。根目录下有两个应用程序,/web和/service/web是MVC4应用程序,而/服务是WCF 4.0服务 当我使用来自MVC的服务时,我使用以下代码:C# 从同一服务器上的MVC调用WCF服务时发生SocketException,c#,asp.net-mvc,wcf,iis-7.5,asp.net-mvc-4,C#,Asp.net Mvc,Wcf,Iis 7.5,Asp.net Mvc 4,我有一台Windows 2008服务器,带有IIS 7.5和一个IP。根目录下有两个应用程序,/web和/service/web是MVC4应用程序,而/服务是WCF 4.0服务 当我使用来自MVC的服务时,我使用以下代码: // Create the web request HttpWebRequest request = WebRequest.Create(TripServiceUrl + id) as HttpWebRequest; // Get response using (H
// Create the web request
HttpWebRequest request = WebRequest.Create(TripServiceUrl + id) as HttpWebRequest;
// Get response
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
// Get the response stream
StreamReader reader = new StreamReader(response.GetResponseStream());
// Console application output
tripJson = reader.ReadToEnd();
}
我得到以下SocketException:
[SocketException (0x274c): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.243.6.43:80]
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) +273
System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) +584
但是,我可以从服务器上的浏览器中看到10.243.6.43:80(内部地址),并成功调用该服务。IP不可公开访问
我应该做什么配置才能进行这样的自引用调用?这可能是一个环回问题(安全问题)。看 总结如下: 在注册表编辑器中,找到并单击以下注册表项: HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 在Lsa上单击鼠标右键,指向“新建”,然后单击“DWORD值”。 键入DisableLoopbackCheck,然后按ENTER键。 右键单击DisableLoopbackCheck,然后单击修改。 在“值数据”框中,键入1,然后单击“确定” 不要遵循有关DisableStrictNameChecking的步骤
您还会发现很多不这样做的原因(毕竟,您正在禁用安全检查),然后很多人会说这是让SharePoint正常工作的唯一方法。无论如何,它将帮助您确定这是否是问题。为什么要使用
WebRequest
来使用WCF服务而不是强类型客户端代理?您可以在客户端上应用与服务器上相同的绑定配置,并使用强类型代理来使用它,并将序列化内容留给基础设施无论如何,这是离题的事实上,这不是什么导致你在这种情况下的问题。我不知道有人可以这样做!10.243.6.43:80浏览器是否可以从服务器本身访问?是的。我在上面提到过。不幸的是,这似乎不是问题。我收回它,它确实起作用了!我在测试期间引入了一个配置错误。谢谢