Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
WCF中另一个应用程序正在使用的端口_Wcf - Fatal编程技术网

WCF中另一个应用程序正在使用的端口

WCF中另一个应用程序正在使用的端口,wcf,Wcf,我在尝试使用以下配置运行WCF自托管应用程序时遇到问题: <system.serviceModel> <services> <service name="statisticsCollectingService"> <endpoint address="net.tcp://localhost:8200/RadioStatistics/" binding="netTcpBinding"

我在尝试使用以下配置运行WCF自托管应用程序时遇到问题:

  <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 use
httpcfg 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