WCF中另一个应用程序正在使用的端口
我在尝试使用以下配置运行WCF自托管应用程序时遇到问题:WCF中另一个应用程序正在使用的端口,wcf,Wcf,我在尝试使用以下配置运行WCF自托管应用程序时遇到问题: <system.serviceModel> <services> <service name="statisticsCollectingService"> <endpoint address="net.tcp://localhost:8200/RadioStatistics/" binding="netTcpBinding"
<system.serviceModel>
<services>
<service name="statisticsCollectingService">
<endpoint address="net.tcp://localhost:8200/RadioStatistics/"
binding="netTcpBinding"
contract="RadioStatistics.Services.IStatisticsCollectingService" />
<endpoint address="http://localhost:8100/RadioStatistics/"
binding="basicHttpBinding"
contract="RadioStatistics.Services.IStatisticsCollectingService" />
</service>
<service name="biDataExportService">
<endpoint address="net.tcp://localhost:8001/RadioStatistics/"
binding="netTcpBinding"
contract="RadioStatistics.Services.IBIDataExportService" />
</service>
</services>
</system.serviceModel>
运行Windows XP SP3时已尝试执行以下操作:
httpcfg集urlacl/u/a“D:(a;;GX;;;BU)”
(我猜所有可能的通用授权和/或用户的变体,比如DU(针对域用户?)
还试图添加到IP列表中
httpcfg集iplisten-i 0.0.0.0:8100
这是在我在事件日志中找到事件后发生的:
无法绑定到基础服务器
0.0.0.0:8100的传输。IP
仅侦听列表可能包含
对接口的引用,该接口可能
此计算机上不存在。数据已丢失
字段包含错误号
最糟糕的是,它在过去(几周前我去度假之前)就已经工作了。在我看来,这台机器没有改变,因为它没有被触摸。但这个错误让我发疯。最糟糕的是,无论选择哪个端口,错误都会发生
当然,移除basicHttpBinding后,它的工作状态绝对良好
短暂性脑缺血发作
罗兰您可能在同一端口上监听其他内容。请尝试运行
netstat -o -n -a
获取所有进程及其侦听内容的列表。我认为这与在.NET 3.5中配置服务,然后更改为.NET 4.0有关-服务配置默认值已经发生了根本性的变化,现在默认情况下创建了许多端点。@Roland,我知道这是一篇非常古老的帖子,我已经看到了您的一篇文章在其他网站上也是如此。我最近有这个问题已经很久了。最终我有两种方法来解决这个问题。 1) 尽管这可能不是推荐的方法,但请获得运行窗口服务的帐户的本地管理员权限。这就是为什么当人们以管理员身份运行VS时,这个问题会在他们的本地计算机上消失,因为默认情况下HTTP将权限授予本地管理员 2) 正如您所说,在xp/2003服务器上使用httpcfg来像您一样配置url和端口号;值得一提的是,
“D:(A;;GX;;;LS)”
是适合我的正确SDDL;我试过其他人,但没有成功。同样重要的是,在配置just use just usehttpcfg set urlacl-u http://+:portnumber-a D:(a;;GX;;;LS)
时不要包含服务名称。并且不要使用httpcfg配置iplisten,因为这很可能会阻止IIS在服务器上运行。从事件日志中得到的错误:无法绑定到0.0.0.0:8100的基础传输。IP仅侦听列表可能包含对此计算机上可能不存在的接口的引用。数据字段包含错误号“建议停止IIS。事实上,如果执行httpcfg query iplisten
操作,您应该只看到默认的ipaddress 0.0.0。使用httpcfg配置url后,需要使用net stop http
重新启动http,并等待所有操作成功停止。然后执行netstart http
。如果http无法正常停止,则需要重新启动服务器,然后IIS才能运行(如果删除了任何无效的IP地址)。然后启动窗口服务,并使用netstat-an | findstr“0.0:yourportnumber”检查,如果有结果,则表示窗口服务正在工作
我只是想补充一下,我在我们的第一台dev服务器上遵循了说明,但它最初没有工作,因为1)我添加了iplisten,2)我在配置url后没有重新启动http。3) 我没有检查iis是否正常运行。
希望这能有所帮助 右键单击Visual Studio应用程序图标并选择“以管理员身份运行”可以解决此问题 以下是Microsoft官方文档页面的摘录: 该服务必须以管理员权限运行。因为您是以管理员权限打开Visual Studio的,所以在Visual Studio中运行GettingStartedHost时,应用程序也是以管理员权限运行的。或者,您可以以管理员身份打开新的命令提示符(从快捷菜单中选择“更多>>以管理员身份运行”),并在其中运行GettingStartedHost.exe
您可能还需要更改端口号。无结果。这个港口真的是免费的。正如我提到的,选择任何其他端口都会产生完全相同的错误。我尝试了几个不同的端口,包括80个。我也关闭了IIS-没有结果:(
netstat -o -n -a