我有一个WCF服务应用程序。在VS2008中使用.NET Framework 3.5的Windows Mobile 6应用程序。
我使用各种.NET框架(3,4等)创建了几个版本的WCF serice。在VS2012。
我将它们托管在我的本地IIS 7下。我可以通过WCF Test Client成功连接并运行服务方法。一切似乎都没问题。
我使用“添加 - >> Web引用”(使用localhost和127.0.0.1)添加服务,并尝试从移动应用程序进行连接。
无论我使用哪种版本的服务,我都会继续收到以下错误
Exception : System.Net.WebException
Message : Unable to connect to the remote server.
Stack Trace :
at System.Net.HttpWebRequest.finishGetResponse()
at System.Net.HttpWebRequest.GetResponse()
at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke(String methodName, Object[] parameters, WebClientAsyncResult asyncResult)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at testWcfMobileClient.svc3.Service1.Test(Boolean& TestResult, Boolean& TestResultSpecified)
at testWcfMobileClient.Form1.Form1_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form._SetVisibleNotify(Boolean fVis)
at System.Windows.Forms.Control.set_Visible(Boolean value)
at System.Windows.Forms.Application.Run(Form fm)
at testWcfMobileClient.Program.Main()
Inner Exception :
Exception : System.Net.Sockets.SocketException
Message : No connection could be made because the target machine actively refused it
Stack Trace :
at System.Net.Sockets.Socket.ConnectNoCheck(EndPoint remoteEP)
at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
at System.Net.Connection.doConnect(IPEndPoint ep)
at System.Net.Connection.connect(Object ignored)
at System.Threading.ThreadPool.WorkItem.doWork(Object o)
at System.Threading.Timer.ring()
我无法找到解决问题的方法,感谢任何帮助。
问候。
更新资料(24.03.2014)
从那时起我一直在研究这个问题,我想提供更多信息。
我有两台服务器,分别是SRV01和SRV02,它们也可以托管其他几个网站。
我将服务应用程序部署到两台服务器,问题是:
SRV01按预期响应,没问题,确认仿真器网络设置没有问题。
然而,SRV02仍会抛出相同的异常。这里的尴尬局面是SRV02还提供其他服务,目前运行顺利。
我正在比较IIS设置,应用程序设置,machine.config文件和web.config文件,所有内容似乎都相同。
另一个奇怪的事情是SRV02在我的建筑物中。网络,而SRV01是同一域中的远程网络。使用SRV02我可能会更容易,但目前的情况反之亦然。
答案 0 :(得分:1)
我终于在一些帖子中找到了答案,遗憾的是我不记得地址。
我所要做的就是替换" localhost"到我电脑的IP地址。
在这个帖子上确实存在一个令人满意的解释,我找到了答案,因为我记得原因是" localhost"是指模拟器本身,应用程序应将托管服务的计算机指向另一台计算机,而不是模拟器本身。
答案 1 :(得分:0)
"无法建立连接,因为目标计算机主动拒绝它"通常表示使用端口设置无法访问目标。 首先检查端口设置。检查目标IP地址。检查防火墙。 (SQL)服务器是否支持TCP / IP?
验证您是否可以使用ping进行连接(例如使用Cambridge vxUtils)。验证模拟器中是否有网络地址。
要在模拟器中获得TCP / IP连接,您必须拥有模拟网卡(很难用于Windows 8,AFAIK是不可能的)或者#39; Dock'模拟设备并将WMDC连接设置设置为“此计算机已连接到Internet'并允许数据连接(称为ActiveSync Passthru连接)。模拟器通常不会停靠您的模拟设备。 VS使用DMA远程调试应用程序。