Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从同一服务器上的MVC调用WCF服务时发生SocketException_C#_Asp.net Mvc_Wcf_Iis 7.5_Asp.net Mvc 4 - Fatal编程技术网

C# 从同一服务器上的MVC调用WCF服务时发生SocketException

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

我有一台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 (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浏览器是否可以从服务器本身访问?是的。我在上面提到过。不幸的是,这似乎不是问题。我收回它,它确实起作用了!我在测试期间引入了一个配置错误。谢谢