我刚刚使用net.tcp
实现了一个简单的WCF服务器。
首先,我使用127.0.0.1
作为服务器地址,客户端能够连接WCF服务。
一切都好。但是当我尝试使用内部IP 192.x.x.x
时,我收到错误:
无法建立连接,因为目标计算机主动拒绝它
知道可能导致这种情况的原因吗?
祝福
PS:我在WCF上禁用了身份验证。甚至关闭防火墙......没有工作......
答案 0 :(得分:6)
您是否在客户端和服务器上都使用192.x.x.x?我记得在一段时间内看到一个问题,对于TCP,需要匹配的客户端和服务器名称(与其中一个消息属性相关的东西),所以如果用“localhost”定义服务,那么客户端就会出现问题
答案 1 :(得分:6)
好吧,当我忘记安装必要的组件时,我收到此错误消息。请参阅链接Configuring WCF Service with netTcpBinding
(步骤摘要)......
答案 2 :(得分:4)
如果逻辑地址相同且服务器端点已配置为“listenUri”且客户端行为配置为使用<clientVia>
地址,则物理客户端和服务地址可能不同。在我们的例子中,这是我们的代理/防火墙配置所必需的。实际上,客户端调用防火墙,服务器在本地侦听转发的请求。
对于IIS托管的服务,请检查以下内容:
对于非IIS托管服务,您可能需要配置命名空间保留(URLACL)。 http://msdn.microsoft.com/en-us/library/ms733768.aspx
还要确保正在运行相应的Windows服务,例如Net.Tcp监听器。
答案 3 :(得分:1)
如果您在调试模式下从visual studio中运行,请确保您的解决方案端口号匹配。我已经看过几个实例,其中我有属性&gt; Web&gt;自动分配端口 - 已选中,端点来自(在本例中为我的silverlight应用程序)与自动生成的端口不匹配。我通常在.web中将端口更改为1318。
答案 4 :(得分:1)
我通过在应用程序配置中注释此设置来解决此问题:
import React from "react";
import { render, fireEvent } from "@testing-library/react";
import { useHistory } from "react-router-dom";
const mockHistoryPush = jest.fn();
const App: React.FC = () => {
const history = useHistory();
const onClick = () => {
history.push("/anotherPath");
};
return (
<div>
<button onClick={onClick}>click</button>
</div>
);
};
jest.mock("react-router-dom", () => ({
useHistory: () => ({
push: mockHistoryPush
})
}));
test("renders learn react link", async () => {
const { getByText } = render(<App />);
fireEvent.click(getByText("click"));
expect(mockHistoryPush).toBeCalledWith("/anotherPath");
});
或者运行Fiddler,它将在127.0.0.1处进行WCF调用,然后将其转发。
完整的情况是,我对服务之一进行WCF调用时遇到了相同的问题。调用将失败,并显示顶级错误消息“ 没有端点在http://LinuxIP:Port/ ... 处侦听”,并且服务跟踪查看器日志显示内部异常是“ 无法建立连接,因为目标计算机主动拒绝了127.0.0.1:8888 “。
原因是我已将此配置放在应用程序中以捕获Fiddler中的传出流量。如果此配置到位,则Fiddler需要运行以进行WCF调用以使其到达预期的目的地。如果Fiddler没有运行,则会出现此错误。在这种情况下,请注释此设置,WCF呼叫将转到目的地。
答案 5 :(得分:0)
今天我发现如果你的WCF服务类中有循环引用,那么这个错误也会出现。我有一个方法无限地调用自己并导致此错误消息,这导致我在这里。
因此,如果其他建议都不起作用,请检查您的代码,看看您是否正在执行任何递归功能,并确保您没有陷入无限循环。